字符串编码转换

其实编码问题很好搞定,只要记住一点:任何平台的任何编码,都能和Unicode互相转换。UTF-8 与 GBK 互相转换,那就先把 UTF-8 转换成 Unicode,再从 Unicode 转换成 GBK,反之同理。

  1.  
    # 这是一个 UTF-8 编码的字符串
  2.  
    utf8Str = "你好地球"
  3.  
     
  4.  
    # 1. 将 UTF-8 编码的字符串 转换成 Unicode 编码
  5.  
    unicodeStr = utf8Str.decode("UTF-8")
  6.  
     
  7.  
    # 2. 再将 Unicode 编码格式字符串 转换成 GBK 编码
  8.  
    gbkData = unicodeStr.encode("GBK")
  9.  
     
  10.  
    # 1. 再将 GBK 编码格式字符串 转化成 Unicode
  11.  
    unicodeStr = gbkData.decode("gbk")
  12.  
     
  13.  
    # 2. 再将 Unicode 编码格式字符串转换成 UTF-8
  14.  
    utf8Str = unicodeStr.encode("UTF-8")

 

  • decode: 的作用是将其它编码的字符串转换成 Unicode 编码
  • encode :的作用是将 Unicode 编码转换成其他编码的字符串
  • 一句话:UTF-8 是对 Unicode 字符集记性编码的一种编码格式

注意事项:

json.loads() 是把 Json 格式字符串解码转换成 Python 对象,如果在 json.loads 的时候出错,要注意被解码的 Json 字符的编码。
如果传入的字符串的编码不是 UTF-8 的话,需要制定字符编码的参数:encoding

dataDict = json.loads(jsonStrGBK);

dataJsonStr 是 JSON 字符串,假设其编码本身是非 UTF-8 的话而是 GBK 的,那么上述代码会导致出错,改为对应的。

dataDict = json.loads(jsonStrGBK, encoding="GBK")

如果 dataJsonStr 通过 encoding 指定了合适的编码,但是其中又包含了其它编码的字符,则需要先去将 dataJsonStr 转换为Unicode,然后再指定编码格式调用 json.loads()

  1.  
    dataJsonStrUni = data.JsonStr.decode("GB2312")
  2.  
    dataDict = json.loads(dataJsontrUni, encoding="GB2312")
  3.  

 

posted @   凡人的智慧2022  阅读(1059)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示