python中json.dumps将汉字转化为了utf-8编码
时间: 2025-01-05 19:47:32 浏览: 23
在Python中,当你使用`json.dumps()`序列化包含非ASCII字符(如汉字)的数据时,默认情况下会使用ASCII编码,这可能导致中文字符变为乱码。要确保汉字以正确的UTF-8编码输出,你需要设置`ensure_ascii=False`参数[^2]。这是一个示例:
```python
import json
# 假设有一个Unicode字符串
unicode_str = u"בורי צקלה"
# 使用 ensure_ascii=False 指定输出UTF-8编码
json_string = json.dumps(unicode_str, ensure_ascii=False)
# 注意这里json.dumps返回的是字节串而非字符串,需要先转换回字符串(如果你要在文本文件中写入)
json_string_utf8 = json_string.decode('utf8')
print(json_string_utf8) # 输出:'бери цкля' (在支持UTF-8的环境中显示为中文)
# 如果直接写入文件
with open('output.json', 'w', encoding='utf8') as f:
f.write(json_string_utf8)
```
这样,中文字符就会被正确地编码为UTF-8并保存在文件中。
阅读全文