`
izuoyan
  • 浏览: 9222217 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

J2ME UTF-8编码 URL请求

阅读更多

要在j2me编程环境中提交utf-8编码方式的url请求,比如如下的URL中searchName是utf-8格式字节流

http://test.mygoogle.at/WebYee/servlet/WebContent?address=44&searchName=%E4%B8%8A%E6%B5%B7%E6%96%B0%E4%B8%96%E7%95%8C%E4%B8%BD%E7%AC%99%E5%A4%A7%E9%85%92%E5%BA%97&tel=55053838&type=44

*)对于非utf-8格式的中文字符串,需要以下两个步骤:

1、获取utf-8编码流

byte[] bytes = null;
try {
bytes = name.getBytes("UTF-8");
} catch (UnsupportedEncodingException ex) {
ex.printStackTrace();
}

2、调用如下方法进行URL格式编码

public static String urlEncode(byte[] b)
{
final String hexChars="0123456789ABCDEF";//hex symbols
StringBuffer sb=new StringBuffer();

for(int i=0;i<b.length;i++)
{
sb.append('%');
sb.append(hexChars.charAt((b[i]&0xf0)>>4));
sb.append(hexChars.charAt(b[i]&0x0f));
}

return sb.toString();

}

String commentQueryUrl = "http://test.mygoogle.at/WebYee/servlet/WebContent?address=44&searchName="
+ urlEncode(bytes)
+ "&tel=55053838&type=44";

*)对于utf-8字符串,则简单一点,调用如下函数进行转换,然后填到相应的URL中:

public static String urlEncode(String str) {
StringBuffer buf = new StringBuffer();
byte[] bytes = null;
try {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(bos);
dos.writeUTF(str);
bytes = bos.toByteArray();
} catch (IOException e) {
// ignore
}
for (int i = 2; i < bytes.length; i++) {
byte b = bytes[i];
if (Consts.URL_UNRESERVED.indexOf(b) >= 0) {
buf.append((char) b);
} else {
buf.append('%').append(Consts.HEX[(b >> 4) & 0x0f]).append(Consts.HEX[b & 0x0f]);
}
}
return buf.toString();
}

如果不进行转换,也许在模拟器上可以正常获取到kml格式数据返回,但是在手机上却返回html访问错误信息。

如果你使用的kxml解析器,那么会抛出unexpected StartTag <html>这样的异常。

分享到:
评论

相关推荐

    j2me----api

    j2me----api j2me----api j2me----api j2me----api j2me----api j2me----api j2me----api j2me----api j2me----api j2me----api

    J2ME midp-2_0-src-windows-i686.rar

    midp-2_0-src-windows-i686.rarmidp-2_0-src-windows-i686.rarmidp-2_0-src-windows-i686.rarmidp-2_0-src-windows-i686.rarmidp-2_0-src-windows-i686.rar

    J2ME---游戏共享

    "J2ME---游戏共享"的主题意味着这个压缩包中包含了多个由J2ME开发的经典游戏示例。这些游戏可能包括移植自其他平台的知名作品,或者是专门为J2ME平台设计的原创游戏。文件名中的各个游戏如下: 1. **壮志凌云.rar**...

    j2me游戏--黑白棋

    8. **打包与部署**:将游戏打包成JAR文件,通过WAP或蓝牙等方式分发给用户。 综上所述,"j2me游戏--黑白棋"是一个结合了J2ME技术与棋类游戏策略的项目,涵盖了移动开发、游戏编程和用户体验设计等多个领域。开发者...

    J2ME----CSDN名士---陈跃峰老师讲课代码

    8. **安全和权限**:J2ME应用运行在受限制的安全环境中,需要获取用户权限才能访问某些敏感功能,如网络连接或电话服务。 9. **优化技巧**:为了在有限的硬件资源上实现最佳性能,开发者需要了解特定于J2ME的优化...

    j2me手册-webservice_mobile_wtk

    《J2ME手册:Webservice、Mobile与WTK详解》 在移动开发领域,Java 2 Micro Edition(J2ME)扮演着至关重要的角色,它为小型设备如手机、PDA提供了强大的应用程序运行环境。本手册围绕“j2me手册-webservice_mobile...

    j2me--API.rar_j2me_j2me api_j2me 游戏_手机游戏

    5. **错误处理与调试**: 使用J2ME的记录和调试工具,如j2me--API.CHM文档中可能包含的详细信息,可以帮助开发者定位并修复问题。 总结,J2ME API为移动游戏开发提供了必要的工具和框架。通过理解和熟练运用这些API...

    j2me--格斗类游戏

    "j2me--格斗类游戏"这个项目显然专注于使用J2ME技术来开发一款格斗类游戏。这种游戏通常包含高速的动作、精确的打击判定以及复杂的角色互动。 首先,我们需要理解J2ME中的图层管理。在2D游戏中,图层是一种组织视觉...

    J2ME--DLL

    **J2ME--DLL** J2ME,全称Java 2 Platform, Micro Edition,是Java平台的一个子集,主要用于嵌入式系统和移动设备的开发,例如手机、智能手表等。在J2ME的开发过程中,有时会涉及到与本地操作系统交互,此时就可能...

    j2me--手机游戏寻经算法

    "j2me--手机游戏寻经算法"这个主题聚焦于游戏中的一个重要技术环节——路径查找算法,它是让游戏中的敌人角色能够在不同图层之间有效地找到并追踪英雄的关键。这种算法对于游戏的动态性和趣味性至关重要。 路径查找...

    J2ME--像素画教程

    这个压缩包文件的标题为“J2ME--像素画教程”,意味着它将详细介绍如何在J2ME环境中进行像素级别的图形绘制,这对于想要开发手机游戏或者其他涉及图形界面的J2ME应用程序的开发者来说,是一个宝贵的资源。...

    J2ME设计--手机游戏黑白棋

    《J2ME设计--手机游戏黑白棋》这篇论文主要探讨了如何使用J2ME技术来开发一款手机游戏——黑白棋。J2ME,即Java Micro Edition,是Java平台的一个子集,专门用于嵌入式设备,如手机和移动设备,提供了一个在这些设备...

    j2me --实现拍照程序

    在Java 2 Micro Edition(J2ME)平台上开发应用程序,特别是涉及到多媒体功能,如拍照和录制视频时,开发者需要理解一些关键概念和技术。本篇文章将深入探讨如何在J2ME中实现拍照程序,并涵盖与之相关的Camera API。...

    第一章J2ME简介--j2me开发.ppt

    【J2ME简介】 Java 2 Micro Edition (J2ME) 是SUN公司(现已被Oracle收购)为小型设备和嵌入式系统设计的一种Java开发平台。它主要应用于移动设备、独立设备、互联移动设备和嵌入式设备,如手机、PDA、车载电子系统...

    j2me satsa-apdu.rar

    解析SATSAPDU涉及到理解其结构和编码规则,通常一个SATSAPDU由命令码、参数和数据三部分组成,每部分都有特定的二进制编码。构建SATSAPDU则需要根据应用需求生成符合协议的数据包,确保其能正确被接收方解析。最后,...

    j2me扫雷----适合初学者

    【标题】"j2me扫雷"是一款专为初级编程学习者设计的移动版扫雷游戏,基于Java 2 Micro Edition (J2ME) 平台。J2ME是Java平台的一个子集,用于开发和部署在嵌入式设备、移动电话和其他小型设备上的应用程序。 【描述...

    J2ME编程----2种方法

    标题中的“J2ME编程——2种方法”指的是在Java 2 Micro Edition(J2ME)平台上进行应用程序开发的一种常见示例,特别是涉及到使用列表(List)组件和ticker组件来展示股票基金信息。J2ME是一种Java平台,用于开发运行...

    简单的J2ME游戏--小蜜蜂

    **简单的J2ME游戏——小蜜蜂** Java 2 Micro Edition(J2ME)是一种轻量级的Java平台,主要用于移动设备、嵌入式系统和其他有限资源的设备上。"小蜜蜂"是一款基于J2ME开发的简单游戏,适合初学者进行游戏编程的学习...

    J2ME练习--贪吃蛇

    《J2ME实战:贪吃蛇游戏开发解析》 J2ME(Java 2 Micro Edition)是Java平台的一个重要分支,主要用于开发移动设备上的应用程序,包括手机、智能手表等。在J2ME的世界里,我们可以利用它来创建各种有趣的游戏,其中...

    j2me讲义--从入门到精通

    第1章 走进J2ME移动开发世界 第2章 面向移动信息设备的 第3章 移动信息设备简表 第4章 搭建移动应用开发环境 第5章 MIDlet编程基础 第6章 MIDP 高级界面编程 第7章 低级用户界面编程

Global site tag (gtag.js) - Google Analytics