1.6. 编码相关问题¶
1.6.1. 什么情况用encode,什么情况又是decode¶
其实各种本地字符集的英文名是 Coded Character Set
,要转换为Coded,肯定是要encode了,同样,从里面解出来也应该叫decode
decode就是把其他编码转换为unicode, 等同于unicode函数 encode就是把unicode编码的字符串转换为特定编码
1.6.2. 可能的解决方法¶
转换编码:
一般可试
Big5
,GBK
,UTF-8
(Unicode的一种应用方式,包括世界上主要的文字)三种如涉及的不是中文,可以再试
JIS(日文)
,KR(韩文)
及其他文字编码彻底的解决方法是双方使用同一编码系统, 如
UTF-8
,只要用户有对应的字体文件就可以正确的显示文字实际上要统一编码系统还要克服各种客观的困难, 现时只有靠软件(如
Microsoft AppLocale
)有更高的解码能力
转换字体:
如果解码正确而出现错误文字,有可能是字体文件中没有相对应的字符, 可尝试转换字体文件
如果本来该显示出汉字的, 却变成数字,如
最欣賞相中拉(最欣賞相中拉)
等Unicode代码, 可以把这部分抄出来, 独立存储成html档, 再用浏览器打开解码. 或可以直接使用JavaScript作解读:alert("最欣賞相中拉");
其他: 有时解码的方法要视乎软件和实际环境, 及不断尝试才能解码, 特别在不知本来是用哪种编码系统时
有时输入汉字时也会出现乱码, 不过这种情况很少出现. 最大的原因是输入法所用的编码, 与经编辑器输出的字体编码不符所致, 可尝试转换字体来解决. 例如把GBK编码的输入法装到只支持Big5的系统上, 是不能正确显示所输入的字的; 必需选择Big5编码的输入法, 或把输入法装到GBK的系统中
有关外文所引致的乱码, 只有转换支持某外文的字体文件才能解决