美文网首页
将 UTF-8 编码误当作 GBK 编码处理后的解决办法

将 UTF-8 编码误当作 GBK 编码处理后的解决办法

作者: 丁鸿辉 | 来源:发表于2019-03-11 15:03 被阅读0次
    变化情况

    原始UTF-8编码文字:全体 (字节流为:e585a8 e4bd93,三个字节为一个字)
    被当作 GBK 编码拆分,GBK编码为单个字两个字节,所以变为3个字:鍏ㄤ綋(e585 a8e4 bd93)
    验证方法:python3:b'\xe5\x85'.decode('GBK') 输出为 '鍏'

    当程序将 鍏ㄤ綋(e585 a8e4 bd93) 以 asci 方式保存的情况下,本地文件会忠实的保存 \xe5\x85\xa8\xe4\xbd\x93 序列,然后在再次打开的时候识别为 UTF-8 编码,从而显示正确的内容。

    当将 鍏ㄤ綋(e585 a8e4 bd93) 复制到一个 UTF-8 编码的终端时,其实际内容会查 UTF-8 表变为:鍏ㄤ綋('\u934f\u3124\u7d8b' 或者 '\xe9\x8d\x8f\xe3\x84\xa4\xe7\xb6\x8b')
    这种情况下,要变回原来序列的话,需要将每个字从 UTF-8 的 3 字节编码变为 2 个字节的 GBK 编码,即 encode('GBK')。然后以 UTF-8 编码的方式去解读,即 decode('utf-8')
    代码为:'鍏ㄤ綋'.encode('GBK').decode('UTF-8')

    相关文章

      网友评论

          本文标题:将 UTF-8 编码误当作 GBK 编码处理后的解决办法

          本文链接:https://www.haomeiwen.com/subject/qhhbpqtx.html