博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
中文字符乱码的原因及解决办法-java乱码原因我所见过最言简意赅的说明
阅读量:4207 次
发布时间:2019-05-26

本文共 723 字,大约阅读时间需要 2 分钟。

java的内核是Unicode的,也就是说,在程序处理字符时是用Unicode来表示字符的,但是文件和流的保存方式是使用字节流的。在java的基本数据类型中,char是Unicode的,而byte是字节,因此,在不同的环节java要对字节流和char进行转换。这种转换发生时如果字符集的编码选择不当,就会出现乱码问题。
我们常见的乱码大致有如下几种情形:
1、汉字变成了问号"?"
2、有的汉字显示正确,有的则显示错误
3、显示乱码(有些是汉字但并不是你预期的)
4、读写数据库出现乱码
下面我们逐一对它们出现的原因做一些解释:
首先,我们讨论汉字变成问号的问题。
Java中byte与char相互转换的方法在sun.io包中。其中,byte到char的常用转换方法是:
public static ByteToCharConverter getConverter(String encoding);
为了便于大家理解,我们先来做一个小实验:比如,汉字"你"的GBK编码为0xc4e3,其Unicode编码是/u4f60。我们的实验是这样的,先有一个页面比如名为a_gbk.jsp输入汉字"你",提交给页面b_gbk.jsp。在b_gbk.jsp文件中以某种编码方式得到"你"的字节数组,再将该数组以某种编码方式转换成char,如果得到的char值是0x4f60则转换是正确的。
a_gbk.jsp的代码如下:

 

 

参考文献:

UTF-8 and Unicode FAQ
《JSP动态网站技术入门与提高》太阳工作室 孙晓龙 赵莉编著

 

 

 

参考文献:

UTF-8 and Unicode FAQ
《JSP动态网站技术入门与提高》太阳工作室 孙晓龙 赵莉编著

转载地址:http://jymli.baihongyu.com/

你可能感兴趣的文章
WF从入门到精通(第二章):workflow运行时
查看>>
WF从入门到精通(第三章):workflow实例
查看>>
WF从入门到精通(第四章):活动及workflow类型介绍
查看>>
WF从入门到精通(第五章):workflow跟踪
查看>>
WF从入门到精通(第六章):加载和卸载实例
查看>>
WF从入门到精通(第七章):基本活动的操作
查看>>
WF从入门到精通(第八章):调用外部方法及工作流
查看>>
WF从入门到精通(第九章):逻辑流活动
查看>>
WF从入门到精通(第十章):事件活动
查看>>
WF从入门到精通(第十一章):并行活动
查看>>
WF从入门到精通(第十二章):策略和规则
查看>>
怎么判断30公分?看我的图文传教就清楚了
查看>>
科目二经验之谈 10小时必过秘笈
查看>>
上海科目二经验总结
查看>>
科目二曲线行驶考试技巧
查看>>
图解侧方停车技巧2015高清版
查看>>
一看就会的侧方位停车技巧 见了就收了吧
查看>>
驾校学车,科目二坡路定点停车和起步操作技巧!
查看>>
车位置判断
查看>>
新规曲线行驶的图解技巧
查看>>