`
luliangok
  • 浏览: 788584 次
文章分类
社区版块
存档分类
最新评论

手机中文字符网络传输的解决方案

 
阅读更多

由于手机端使用的是UTF-8编码,所以在网络传输中需要进行码制转换,无论是从服务器到客户端,还是客户端到服务器端。下面我写出我的解决方法,该方法在Nokia 7610上运行成功。

思路:将中文字符串转换成Unicode编码格式(即”/uXXXX/uXXXX……”形式)的字符串进行网络传输,在接收后反转换成中文字符串,以便在手机上显示或者存到服务器端数据库中,服务器接收和发送使用ISO8859-1编码。

编码:
public static String encodeUnicode(final String gbString)
{
char[] utfBytes = gbString.toCharArray();
String unicodeBytes = "";
for (int byteIndex = 0; byteIndex < utfBytes.length; byteIndex++) {
String hexB = Integer.toHexString(utfBytes[byteIndex]);
if (hexB.length() <= 2) { //非中文字符
hexB = "00" + hexB;
}
unicodeBytes = unicodeBytes + "//u"+ hexB;
}
// System.out.println("unicodeBytes is: " + unicodeBytes);
return unicodeBytes;
}

解码:
public static String decodeUnicode(final String dataStr)
{
int start = 0;
int end = 0;
StringBuffer buffer = new StringBuffer();
while (start > -1) {
end = dataStr.indexOf("//u", start + 2);
String charStr = "";
if (end == -1) {
charStr = dataStr.substring(start + 2, dataStr.length());
} else {
charStr = dataStr.substring(start + 2, end);
}
char letter = (char) Integer.parseInt(charStr, 16); // 16进制整形字符串。
buffer.append(new Character(letter).toString());
start = end;
}
return buffer.toString();
}

示例:客户端发送注册信息到服务器,存储到数据库中。(服务器到客户端处理是一样的)

客户端(使用url encode):从文本框中接收中文字符,编码使用POST方式连接服务器。
TextField yourName = null;
StringBuffer oBuf = new StringBuffer();
………
//name
String temp = yourName.getString().trim();
System.out.println("Get textfield name :" + temp );
temp = encodeUnicode (temp);
System.out.println("Encode name:" + temp);
oBuf.append("UName=" + temp);
………
HttpConnection con = null;
OutputStream os = null;
………
con.setRequestMethod(HttpConnection.POST);
on.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
os = con.openOutputStream();
os.write(oBuf.toString().getBytes());
………

在文本框中输入“白云”发送到服务器,在WTK上输出:
Get textfield name :??
Encode name:/u767d/u4e91

服务器端使用”ISO8859-1”编码格式接收和发送数据。
HttpServletResponse response;
response.setContentType("text/plain; charset=ISO8859-1");

HttpServletRequest request;
request.setCharacterEncoding("ISO8859-1");

服务器接收:
HttpServletRequest request;
request.setCharacterEncoding("ISO8859-1");
nickName = request.getParameter("UName");
System.out.println("Request get:" + nickName);
nickName = decodeUnicode(nickName);
System.out.println("DecodeName :" + nickName);

服务器输出:
Request get:/u767d/u4e91
DecodeName :白云

这时在服务器就可以使用解码后的中文字符串进行处理了,比如存入数据库(要注意数据库的内码格式,如:存入MySQL,字段编码格式可选择UTF-8格式)

分享到:
评论

相关推荐

    跨平台中大量数据传输的接口设计解决方案

    实现跨平台的数据传递与访问,同时对于存在的并发问题提出了相应的解决方案,为在不同平台下的接口函数编写、调用等过程提供了一个完整的实现参考样本,并在实际项目中成功应用。为今后类似问题的解决提供了一种成功的...

    解决方案-信息安全设计方案.docx

    经调查,现有校园网络拓扑图如下: 二、设计方案拓扑图 三、设计原则 根据防范安全攻击的安全需求、需要达到的安全目标、对应安全机制所需的安全解决方案-信息安全设计方案全文共3页,当前为第2页。解决方案-信息...

    论文研究-基于IBE技术的学分制管理系统安全解决方案.pdf

    采用表示用户身份的任意字符串作为公钥、严格验证用户身份、对关键数据进行数字签名、网络传输使用安全连接等方法,保证了数据存储、传输等过程的机密性、完整性、可用性和不可抵赖性,克服了传统PKI技术产生、存储...

    java完整性校验解决方案

    其他程序可能是网络传输过程中的第三方盗窃者,也有可能是本地环境中存在的不良程序,如木马。在apache的下载列表旁边,我们会发现有个md5的链接,点击打开之后,会出现如下字符串:cbad484f0b02f0daf775137aeeOf4e2e...

    网络安全保障措施.docx

    网络安全保障措施 为了全面确保本公司网络安全,在本公司网络平台解决方案设计中,主要将基于以下设计原则: 1. 各系统网络设备当前运行配置文件应和备份配置文件保持一致。 2. 网络设备登录提示标识应适当屏蔽内部...

    RSA及AES加解密解决方案

    对称加密算法AES及非对称加密算法RSA对字符串进行封装的工具类及DEMO

    无线网络安全分析论文.docx

    2.2数据加密:基于WEP的安全解决方案 3 三、新一代无线安全技术——IEEE802.11i 4 四、无线接入点安全 7 4.1 修改admin密码 7 4.2 WEP加密传输 7 4.3 禁用DHCP服务 7 4.4 修改SNMP字符串 7 4.5 禁止远程管理 8 4.6 ...

    电力101规约

    "电力101规约" 本规约定义了电力系统中的通讯规约,涵盖了网络拓扑结构、传输方式、帧格式、控制域等方面的规定。 一、 网络拓扑结构 ...这套规约为电力系统中的数据传输提供了一个可靠、可靠的解决方案。

    江南天安基于国密算法的弱口令解决方案.pdf

    语(通常是一个字符串)。把口令与用户标识(如用户名) 一起使用,是鉴别和认证(identification and authentication) 的一种形式。鉴别是指认证申请人示 出一个身份标识,向系统表明自己的身份。认证则是建立 ...

    Juniper网络设备安全加固规范标准.doc

    Juniper网络设备安全加固规范标准提供了一个全面的安全解决方案,旨在帮助网络管理员和安全管理员更好地保护Juniper网络设备免受恶意攻击和未经授权的访问。该规范标准涵盖了账号管理、认证授权、日志配置等多个方面...

    matlab接收字符代码-edgar-analytics:包含我对InsightDataEngineering编码练习的解决方案的存储库

    我们强烈建议您花一些时间来阅读本自述文件的全部内容,然后再开始考虑潜在的解决方案。 在深入研究具体细节之前,您可能会发现复习这些示例并从高层次理解问题很有用,FAQ中涵盖了其中的许多细节。 介绍 许多投资者...

    中小企业的网络安全指南.docx

    使用电子邮件和网络保护工具 采用解决方案,阻止滥发的电子邮件、含有恶意网站链接的电子邮件、含有恶意附件(如病毒)的电子邮件和钓鱼电子邮件。 加密 通过加密保护数据。中小型企业应确保存储在移动设备(如笔记本...

    天然气煤气站智能远程监控系统方案.doc

    网络视频编码器本身具有字符叠加功能,在摄像机将实时图像接入到网络编码器的时 候,编码器便可以针对此路视频的信息进行手动标注,并以字符叠加的方式,将带有字 符的画面通过网络传回到网络视频综合管理平台,...

    网络串口通信中心(串口服务器)

     网络串口交互中心,实现网络数据和串口数据相互转换的功能,能够将RS232串口转换成TCP/IP网络接口(或TCP/IP网络接口转换成RS232串口),实现串口(RS232)与TCP/IP网络接口的数据双向透明传输。使得串口设备能够立即...

    中文版RFC,共456

    RFC948 IP 数据包通过IEEE 802.3 网络传输的两种方法 RFC949 FTP 未公开的独特命令 RFC951 引导协议(BOOTP) RFC955 朝向一个处理过程应用的传输服务 RFC962 TCP-4 的最初 RFC968 “这是开动前的黑暗” RFC974 邮件...

    C语言UDP传输系统源码.zip

    这些库包括用于字符串处理、内存管理、文件操作和网络编程等常见任务的函数。此外,该项目还提供了一套强大的调试工具,帮助开发人员快速定位和修复代码中的错误。 另一个令人赞赏的特点是该项目的跨平台性。它可以...

    url 编码 js url传参中文乱码解决方案

    ”GB2312″ requestEncoding=”GB2312″ responseEncoding=”GB2312″/&gt; 这样参数就以gb2312的中文编码方式传输了。而一般默认是utf-8. 2.在传参是先编码在传输,接受时先编码,在接收。 string mm=Server....

    Android Intent传递数据大小限制详解

    前言 在sendBroadcast,startActivity时,我们会用到Intent。 Intent可以携带一些数据,比如基本类型数据int、Boolean,或是String,或是序列化对象,Parcelable与Serializable。 Intent传递数据时,如果数据太大,...

    【最新版】Jellyfin_10.6.2.dmg【亲测可用】最好的服务器流式传输

    自由软件媒体系统 Jellyfin是自愿构建的媒体解决方案,可让您控制媒体。从您自己的服务器流式传输到任何设备,不附带任何字符串。您的媒体,服务器和方式。

    js实现unicode码字符串与utf8字节数据互转详解

    现在给出解决方案,可以正确支持中文、emoji表情、英文混合的字符串编码互转。 /** * Created by hdwang on 2019/1/28. */ var convertUtf8 = (function() { /** * unicode string to utf-8 * @param text ...

Global site tag (gtag.js) - Google Analytics