2.5.8. 编码相关问题

什么情况用encode,什么情况又是decode

其实各种本地字符集的英文名是 Coded Character Set ,要转换为Coded,肯定是要encode了,同样,从里面解出来也应该叫decode

decode就是把其他编码转换为unicode, 等同于unicode函数 encode就是把unicode编码的字符串转换为特定编码

可能的解决方法

  • 转换编码:

    • 一般可试 Big5 , GBK , UTF-8 (Unicode的一种应用方式,包括世界上主要的文字)三种
    • 如涉及的不是中文,可以再试 JIS(日文) , KR(韩文) 及其他文字编码
    • 彻底的解决方法是双方使用同一编码系统, 如 UTF-8 ,只要用户有对应的字体文件就可以正确的显示文字
    • 实际上要统一编码系统还要克服各种客观的困难, 现时只有靠软件(如 Microsoft AppLocale )有更高的解码能力
  • 转换字体:

    如果解码正确而出现错误文字,有可能是字体文件中没有相对应的字符, 可尝试转换字体文件

  • 如果本来该显示出汉字的, 却变成数字,如 最欣賞相中拉(最欣賞相中拉) 等Unicode代码, 可以把这部分抄出来, 独立存储成html档, 再用浏览器打开解码. 或可以直接使用JavaScript作解读:

    alert("最欣賞相中拉");
    
  • 其他: 有时解码的方法要视乎软件和实际环境, 及不断尝试才能解码, 特别在不知本来是用哪种编码系统时

  • 有时输入汉字时也会出现乱码, 不过这种情况很少出现. 最大的原因是输入法所用的编码, 与经编辑器输出的字体编码不符所致, 可尝试转换字体来解决. 例如把GBK编码的输入法装到只支持Big5的系统上, 是不能正确显示所输入的字的; 必需选择Big5编码的输入法, 或把输入法装到GBK的系统中

  • 有关外文所引致的乱码, 只有转换支持某外文的字体文件才能解决