[转帖]java中文乱码解决之道_Android, Python及开发编程讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Android, Python及开发编程讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2810 | 回复: 0   主题: [转帖]java中文乱码解决之道        下一篇 
    本主题由 koei 于 2014-5-2 16:21:56 移动
happy
注册用户
等级:上尉
经验:681
发帖:38
精华:0
注册:2013-4-22
状态:离线
发送短消息息给happy 加好友    发送短消息息给happy 发消息
发表于: IP:您无权察看 2013-4-23 16:34:51 | [全部帖] [楼主帖] 楼主

每个java程序员,在java开发中都能遇到java中文乱码的情况,怎样才能够恰当地选择汉字编码方式并正确

地处理汉字的编码呢?希望通过下面的总结的java中文乱码解决方法对遇到过此类问题的朋友有所帮助。

首先,要想解决java中文乱码问题就有必要了解一下什么是字符,字符集,编码的概念。

字符:是文字与符号的总称,包括文字、图形符号、数学符号等。

字符集:就是一组抽象字符的集合。字符集常常和一种具体的语言文字对应起来,该文字中的所有字符或者大部分常用字符就构成了该文字的字符集,比如英文字符集。繁体汉字字符集、日文汉字字符集等等。

计算机要处理各种字符,就需要将字符和二进制内码对应起来,这种对应关系就是字符编码: 制定编码首先要确定字符集,并将字符集内的字符排序,然后和二进制数字对应起来。根据字符集内字符的多少,会确定用几个字节来编码。

每种编码都限定了一个明确的字符集合,叫做被编码过的字符集(Coded Character Set),这是字符集的另外一个含义。通常所说的字符集大多是这个含义。

其次,要想解决java中文乱码问题也得了解一下我们常用的编码方式:

ASCII编码是目前计算机中用得最广泛的字符集及其编码。

ISO8859-1可以表示的是西欧语言。看起来很单一为什么还在使用呢?,由于是单字节编码,和计算机最基础的表示单位一致,所以很多时候,仍旧使用ISO-8859-1编码来表示。 而且在很多协议上,默认使用该编码。

Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。通常我们所遇到过多UTF-8这是Unicode编码的实现方式,请一定要加以区分。

GB2312字集是简体字集;BIG5字集是台湾繁体字集;GBK字集是简繁字集,包括了GB字集、BIG5字集和一些符号

GB18030是国家制定的一个强制性大字集标准,它的推出使汉字集有了一个统一的标准。

Linux系统默认使用的是ISO-8859-1编码,Win32系统默认使用的是GB2312编码。

再是,了解乱码是怎么产生的,如何解决java中文乱码?

字符在保存时的编码格式如果和要显示的编码格式不一样的话,就会出现乱码问题。我们在做开发的时候,始终提倡开发环境编码一致。如页面编码,数据库编码等。

Java在运行期一律以Unicode来存储字符,这样有利的支持了多语言环境。我们在开发过程中经常会用到文件读取。Java读文件的时候会用到系统默认的编码来解码文件。所以在用FileInputStream类读取文件可以指定编码读取。

JSP页面乱码通常只要在页面开始地方用下面代码指定字符集编码即可。如果还不行,那么请用下面这句话来转换 str=new String(str.getBytes(ISO-8859-1),页面编码方式);


JAVA在网络传输中使用的编码是ISO-8859-1,故在输出时需要进行转化,如:

String str=new String(str.getBytes(开发环境编码),ISO-8859-1);


经过网络编码后的中文,要正确显示在页面上必须要用类似于

Stirng str=new String(str.getBytes(ISO-8859-1),开发环境编码);这样的方式来解码

该贴由koei转至本版2014-5-2 16:21:56




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论