概述
做中文的程序经常会遇到乱码的问题。汉字编码有国标GB2312,CJK,UTF8,最让人头疼了。本文试着总结出几个常见的乱码情形和解决方法。
GBK as ISO8859
如图中第一种情况,你会看到原本是汉字的字符变成了好多你不认识的西欧字符。还能救,将文本重新用GBK读取就行了。
GBK as UTF8
这是最危险的,UTF8的字符集相当的宽阔,这时候你会看到一个个的方框,或者菱形+问号。 能不能救要看运气,1)如果gbk流已经用utf8编解码另存过了,挽救的机会小,即便反向的编解码也不能得到完整的原文。2)如果只是在输出到客户端的时候“显示”出错,那么只需要重新调整字符集设置就能得到正确的显示。
UTF8 as GBK
这种情况下你会看到好多不认识的汉字,至少他们都是汉字,能够显示出来。将文件重新用UTF8读取就正常了。
锟斤拷
无药可救了。流在GBK和UTF8之间进行了2次以上的错误转码。
![4中乱码形式][1] [1]: