Python如何实现模拟锟斤拷等各类乱码


这篇文章主要讲解了“Python如何实现模拟锟斤拷等各类乱码”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python如何实现模拟锟斤拷等各类乱码”吧!说到乱码问题就不得不提到锟斤拷,这算是非常常见的一种乱码形式,那么它到底是经过何种错误操作产生的呢?下面我们一步步探究。看一个基本示例:”��”.encode(“u8”).decode(“gbk”)’锟斤拷’我们将�字符以UTF-8编码后,以GBK编码解码就可以得到 锟斤拷 的乱码。那么为什么 锟斤拷 为什么如此常见呢?这是因为大部分编程语言在使用UNICODE系列的编码去解码时,会将不识别的字节编码为0xFFFD(65533)即�字符表示未知字符进行占位:”uFFFD”‘�’注意:UNICODE系列包括UTF-8、UTF-16、UTF-32编码,一般UNICODE编码指UTF-16编码。在python中unicode_escape编码表示UNICODE编码的的转义形式:对于Python,默认情况下解码碰到未知字符时会直接抛出异常,但是如果设置errors参数为replace时,则会将未知字符解码为�占位。将汉字用GBK编码:b’xd0xa1xd0xa1xc3xf7’将上述编码结果用UTF-8编码解码,并设置为替换模式:’��’0xd0a1被解码成,但是0xc3和0xf7无法被UTF-8编码识别,只能用占位符�替换,于是就得到了上面的结果。此时我们再编码并解码:’小小锟斤拷’这是因为�被编码成了0xEFBFBDb’xefxbfxbdxefxbfxbd’而0xEFBFBDEFBFBD被GBK解码时,正好就是锟(0xEFBF),斤(0xBDEF),拷(0xBFBD)。上述以�为主的乱码字符就是口字码,原因是以UTF-8编码读取了GBK编码的中文。而锟拷体则是大部分都是锟斤拷的全中文字符,原因是用GBK编码读取了UTF-8编码的口字码中文。问句码产生的核心原因在于GBK对于无法编码的字符会免费云主机域名使用?填充:b’??’古文码则与前面的口字码产生原因相反,使用GBK编码读取以UTF-8编码的中文:’灏忓皬鏄�’此时的 灏忓皬鏄 就非常像古文,gbk解码对于不识别的字节也使用�占位。此时gbk编码对于�编码失败,使用?替代:b’xe5xb0x8fxe5xb0x8fxe6x98?’此时再用UTF-8解码就得到了问句码:’小小?’不过问句码只在原始字符串为奇数时产生,如果原始字符串长度为偶数,使用上述编码方式则可以原样还原字符串:’小小明月’这样说明只要我们将原始汉字字符串填充到偶数,就可以使用古文码实现可逆的数据传输,而锟拷体则是一种不可逆的乱码。还有两种可逆的乱码,我们先看看符号码:’x8fx8fx98x8e’像这种大部分字符为各种符号的乱码就称为符号码,符号码可以直接还原为原始的文本:’小小明’再看看拼音码:”这种大部分字符都是带有声调的字母称为拼音码,同样可以直接还原:’小小明’感谢各位的阅读,以上就是“Python如何实现模拟锟斤拷等各类乱码”的内容了,经过本文的学习后,相信大家对Python如何实现模拟锟斤拷等各类乱码这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是百云主机,小编将为大家推送更多相关知识点的文章,欢迎关注!

相关推荐: vue+element多个相同的select不允许重复选择问题怎么解决

这篇文章主要讲解了“vue+element多个相同的select不允许重复选择问题怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue+element多个相同的select不允许重复选择问题怎么解决”吧…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 05/12 23:12
Next 05/12 23:12

相关推荐