utf-8 神秘符号 efbf bdef bfbd 锟斤拷

utf-8 神秘符号 efbf bdef bfbd

很多时候我们在打开utf-8的时候会有 � 等很多像问号的编码出现
这时候我们打开这个文件的二进制就会发现 问号对应的十六进制编码就是
efbf bdef bfbd。这个编码到底是什么呢?为什么会有这种编码呢。
这就要从各种编码格式的转换说起。而且大部分出现这种问题的就是用gbk编码的文件
用utf-8编码格式打开。当编码格式中出现utf-8无法解析的字节,那么这个字节就会被
替换成 efbf bdef bfbd 这时我们会发现文件大小也发生了改变,因为未知字节全部
变成三个未知字节。
而这时候再将其转换为gbk
锟 (0xEFBF),斤(0xBDEF),拷(0xBFBD)
这就是 锟斤拷
那么我是在什么时候发现这个问题:
python 的 print 我们一般都会把python代码设置成全局utf-8编码。
这时候如果你收到的是一个gbk的编码,但是直接打出来。就会发现出现很多问号。
这个时候直接复制粘贴再看二进制就不是真正接受的数据。因为print自动将收到的
数据进行了utf-8解码。这样无法解析的编码就变成efbf bdef bfbd。
所以在遇到乱码的时候就需要在数据的原始接受处,及第一次转码发生之前将数据用二进制写入文件留存

    原文作者:醒了和起床是两码事
    原文地址: https://segmentfault.com/a/1190000007579595
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞