在接口测试中,有些响应类似 "\u9875\u9762\u4e0d\u5b58\u5728"

Python_unicode转中文_拼接字符串

在测试中不明白响应的什么,实际上这是unicode的中文编码。可用以下方法转换:

# coding:utf-8

# 直接在 unicode 字符串前加u  ===> 应用于静态转码,比如:已获取到字符串,只想查看中文意思
us = u"\u9875\u9762\u4e0d\u5b58\u5728"
print(us)

# 使用 decode 解码成中文 ===> 应用于动态转码
s = "\u9875\u9762\u4e0d\u5b58\u5728"
print(s.decode("unicode_escape"))

Python_unicode转中文_中文字符_02

常见问题

需要注意的是,动态转码在拼接字符串时,若拼接的字符串包含中文或中文字符,会抛错:UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 0: ordinal not in range(128)

# coding:utf-8

s = "\u9875\u9762\u4e0d\u5b58\u5728"

# 拼接的字符串 不包含 中文字符===>正常
print("result: %s" % s.decode("unicode_escape"))

# 拼接的字符串 包含 中文字符串===>异常
print("结果: %s" % s.decode("unicode_escape"))

 Python_unicode转中文_中文字符_03

 解决方法:

# coding:utf-8

s = "\u9875\u9762\u4e0d\u5b58\u5728"

# 在拼接字符串前 添加 u
print(u"结果: %s" % s.decode("unicode_escape"))

Python_unicode转中文_字符串_04