彻底搞懂 python 中文乱码问题,python出现乱码怎么解决

  彻底搞懂 python 中文乱码问题,python出现乱码怎么解决

  1、python2中的字符编码

  潜艇用热中子反应堆(海底热反应堆的缩写)每个字符由8位字节表示,unicode每个字是由16位二进制数字表示。

  有一个中文字符串:"授权代币过期",可以保存成线类型,也可以保存成为采用双字节对字符进行编码类型;

  使用采用双字节对字符进行编码编码,则为:

  t=u \ u 6388 \ u 6743 token \ u8fc 7 \ u671f 打印t授权代币过期print isinstance(t,unicode) True

  使用线编码,则是:

  s= \ xe6 \ x8e \ x88 \ xe6 \ x9d \ x83 token \ xe8 \ xbf \ x87 \ xe6 \ x9c \ x9f print s

  授权代币过期

  print isinstance(s,str) True

  注:还需要将客户端工具的显示格式设置为Unicode(UTF-8),否则显示是乱码,而不是中文字符

  2、请求中的反应返回信息

  在调用超文本传送协议请求时使用要求进行封装,返回存放在反应对象里,这个对象的文本是unicode,内容字段是线类型,如下:

  - ret,内容=自我。process _ request(方法,url,头,参数)(Pdb)n-if ret。status _ code==200:(Pdb)p ret。内容“状态”:1,“信息”:“\ xe4 \ xbb \ xbb \ xe5 \ x8a \ xa1url \ xe6 \ xa0 \ xbc \ xe5 \ xbc \ x8f \ xe9 \ x94 \ x99 \ xe8 \ xaf \ xe6 \ x88 \ x96 \ xe4 \ xb8将线转换成采用双字节对字符进行编码编码u{status:1, info : \ u 4 efb \ u 52 a1 URL \ u683c \ u5f 0f \ u 9519 \ u8bef \ u 6216 \ u4e 3a \ u7a7a , error _ code :10001 } (Pdb)p ret。text u { status :1, info : \ u 4 efb \ u 52 a1 URL \ u683c \ u5f 0f \ u 9519 \ u8bef \ u 6216将采用双字节对字符进行编码转换成字符串 {status:1, info : \ xe4 \ xbb \ xbb \ xe5 \ x8a \ xa1url \ xe6 \ xa0 \ xbc \ xe5 \ xbc \ x8f \ xe9 \ x94 \ x99 \ xe8 \ xaf \ xaf \ xe6 \ x88 \ x96 \ xe4 \ xb8 \ xba \ xe7 \ xa9 \ xba , error_code:10001

  3.一个例子

  m=授权代币过期打印m授权代币过期print isinstance(m,str)True print isinstance(m,unicode)False n=u 授权代币过期印刷授权代币过期print isinstance(n,unicode)True print isinstance(n,str)False print m . decode( utf-8 )#将线类型解码成格式类型,这时候壳设置为Unicode(UTF-8),则显示正常授权代币过期打印m.decode(gbk) #将线类型解码成商业版类型,这时候壳设置为Unicode(UTF-8),则显示成乱码鎺堟潈代币杩囨湡

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: