快速业务通道

Java编程技术中汉字问题的分析及解决 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-24
的字符集,比如在中文Windows操作系统上就是GBK ,而在Linux操作系统上就是ISO-8859-1,所以大家会发现在Linux操作系统上编译的类中源文件中的中文字符都出了问题,解决的办法就是在编译的时候添加 encoding 参数,这样才能够与平台无关。用法是

javac ?Cencoding GBK。

“ Java 字节码->虚拟机->操作系统”,Java运行环境(JRE)分英文版和国际版,但只有国际版才支持非英文字符。Java开发工具包 (JDK) 肯定支持多国字符,但并非所有的计算机用户都安装了 JDK 。很多操作系统及应用软件为了能够更好的支持 Java ,都内嵌了 JRE的国际版本,为自己支持多国字符提供了方便。

“操作系统->显示设备”,对于汉字来说,操作系统必须支持并能够显示它。英文操作系统如果不搭配特殊的应用软件的话,是肯定不能够显示中文的。

还有一个问题,就是在Java编程过程中,对中文字符进行正确的编码转换。例如,向网页输出中文字符串的时候,不论你是用

out.println(string);还是用

<%=string%>,都必须作 UNICODE 到 GBK的转换,或者手动,或者自动。在JSP 1.0中,可以定义输出字符集,从而实现内码的自动转换。用法是

<%@page contentType=”text/html;charset=gb2312” %>

但是在一些 JSP 版本中并没有提供对输出字符集的支持,(例如 JSP 0.92),这就需要手动编码输出了,方法非常多。最常用的方法是

String s1 = request.getParameter(“keyword”);

String s2 = new String(s1.getBytes(“ISO-8859-1”),”GBK”);

Java编程技术中汉字问题的分析及解决(2)

时间:2010-04-27 IBM 段明辉

getBytes 方法用于将中文字符以“ISO-8859-1”编码方式转化成字节数组,而“GBK” 是目标编码方式。我们从以ISO-8859-1方式编码的数据库中读出中文字符串 s1 ,经过上述转换过程,在支持 GBK 字符集的操作系统和应用软件中就能够正确显示中文字符串 s2 。

Java中文问题的表层分析及处理

背景
开发环境 JDK1.15 Vcafe2.0 JPadPro
服务器 NT IIS Sybase System Jconnect(JDBC)
客户端 IE5.0 Pwin98 ?span >

.CLASS 文件存放在服务器端,由客户端的浏览器运行APPLET ,APPLET 只起调入 FRAME 类等主程序的作用。界面包括 Textfield ,TextArea,List,Choice 等。

I.用 JDBC 执行SELECT语句从服务器端读取数据(中文)后,将数据用 APPEND 方法加到 TextArea(TA) ,不能正确显示。但加到 List中时,大部分汉字却可正确显示。

将数据按“ISO-8859-1”编码方式转化为字节数组,再按系统缺省编码方式 (Default Character Encoding) 转化为STRING ,即可在TA 和 List中正确显示。

程序段如下:

dbstr2 = results.getString(1); //After reading the result from DB server,converting it to string. dbbyte1 = dbstr2.getBytes(“iso-8859-1”); dbstr1 = new String(dbbyte1);

在转换字符串时不采用系统默认编码方式,而直接采用“ GBK” 或者 “GB2312” ,在A 和 B 两种情况下,从数据库取数据都没有问题。

II.处理方式与“取中文”相逆,先将 SQL语句按系统缺省编码方式转化为字节数组,再按“ISO-8859-1”编码方式转化为STRING ,最后送去执行,则中文信息可正确写入数据库。

程序段如下:

sql

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号