Wednesday, January 17, 2007

Java Web日记:Servlet、JSP中的乱码

这IT世界由英语把持的弊端——或者称为给中国programmer带来的困扰——之一就是乱码吧.这也是小白我必经的一课.那么,且来认识一下字符转换问题.

之所以会出现乱码,原因在于使用的字符集(charset)不匹配.26个英文字母到哪里都OK,但是其他土著文字便没有这么轻松,如果使用的字符集没有提供相应的文字索引,那显示出来的便只有乱码.从底层来说,文字都是二进制代码形式存储.操作系统启动后便加载在内存里.我们所输出输出的,都是对文字的索引.不同字符集索引位置不一样.使用错误的字符集,便找不到正确的索引而只能是乱码.

在java编程中需要发生转码的地方.developerworks上有篇文章讲到了JSP/Servlet 中的汉字编码问题.

从我自己的体验出发,解决办法就是无保留地投向UTF-8字符集.GBK可以显示汉字,但是碰到其他东亚文字依然很糟糕.

2 comments:

opentiss said...

哈哈,的确不错,鼓励一下。

Anonymous said...

当数据库编码是iso8859时,字符转换就成了灾难。