关于java中文乱码的应对绝招
来源:互联网 发布:燕十八mysql优化笔记 编辑:程序博客网 时间:2024/05/29 18:56
海浪在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"),"开发环境编码");这样的方式来解码
第四,为了避免不必要的java中文乱码,我们首先要从源头做起。
什么意思呢?这就是说,我们在项目开发中,首先要让我们开发环境统一编码。比如海浪用的开发环境是Eclipse+Tomcat5.0+SQLServer 2005。Eclipse的项目属性中可以设置项目的编码,可以针对JSP页面的设置统一的编码。
以上的java中文乱码的应对绝招,是海浪在工作中总结的,希望对大家有帮助,如果大家对java中文乱码方面有更多的绝招,可以访问海浪的博客http://www.po-soft.com/hi/hailang,与海浪多多交流。
- 关于java中文乱码的应对绝招
- 应对java中文乱码的妙招
- 应对java中文乱码的妙招 .
- 关于JAVA中文乱码
- 关于java中文乱码的总结
- Java 关于中文乱码处理的经验总结
- 关于Java Servlet的中文乱码
- 关于Java Servlet的中文乱码
- 关于Java Servlet的中文乱码
- Java 关于中文乱码处理的经验总结
- Java 关于中文乱码处理的经验总结
- 关于Java Servlet的中文乱码
- 关于Java Web中文乱码的问题
- 关于java中文件下载中文乱码的事
- 关于java中文乱码问题
- 关于Java中文乱码问题
- Java关于中文乱码问题
- Java 关于中文乱码问题的解决方案与经验【转载】
- DIV CSS设计时IE6、IE7、FF 与兼容性有关的特性
- WebService CXF学习(高级篇3):WS-Security
- 获取Android手机总内存和可用内存
- VS的相关问题
- Ajax的UpdatePanel内无法弹出窗口的解决方法
- 关于java中文乱码的应对绝招
- Ubuntu更新+编译环境+中文输入法
- 计数排序
- Socket I/O模型之完成端口
- 测试大小6k
- 《数据库系统基础教程》读书笔记——第一章 数据库系统世界
- DATA abort定位方法
- vs 2010 xp安装没有.NET 2.0 3.5 (WIN7没事情)
- HTML5设计原理