字符串编码转换
其实编码问题很好搞定,只要记住一点:任何平台的任何编码,都能和Unicode互相转换。UTF-8 与 GBK 互相转换,那就先把 UTF-8 转换成 Unicode,再从 Unicode 转换成 GBK,反之同理。
-
# 这是一个 UTF-8 编码的字符串
-
utf8Str = "你好地球"
-
-
# 1. 将 UTF-8 编码的字符串 转换成 Unicode 编码
-
unicodeStr = utf8Str.decode("UTF-8")
-
-
# 2. 再将 Unicode 编码格式字符串 转换成 GBK 编码
-
gbkData = unicodeStr.encode("GBK")
-
-
# 1. 再将 GBK 编码格式字符串 转化成 Unicode
-
unicodeStr = gbkData.decode("gbk")
-
-
# 2. 再将 Unicode 编码格式字符串转换成 UTF-8
-
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()
-
dataJsonStrUni = data.JsonStr.decode("GB2312")
-
dataDict = json.loads(dataJsontrUni, encoding="GB2312")
-
浙公网安备 33010602011771号