【发布时间】:2016-02-23 16:12:04
【问题描述】:
如果之前有人问过这个问题,我深表歉意。我仍然不清楚python3.2中的编码。
我正在阅读一个 csv(以 UTF-8 编码,不带 BOM),并且我在 csv 中有法语口音。
这是打开和读取 csv 文件的代码:
csvfile = open(in_file, 'r', encoding='utf-8')
fieldnames = ("id","locale","message")
reader = csv.DictReader(csvfile,fieldnames,escapechar="\\")
for row in reader:
if row['id'] == id and row['locale'] == locale:
out = row['message'];
我将消息(输出)作为 Json 返回
jsonout = json.dumps(out, ensure_ascii=True)
return HttpResponse(jsonout,content_type="application/json; encoding=utf-8")
但是,当我预览结果时,我发现重音 e(French) 被替换为 \u00e9 。
您能否就我做错了什么以及我应该怎么做以使 json 输出显示正确的带重音的 e 提出建议。
谢谢
【问题讨论】:
-
“但是,当我预览结果时,我发现重音 e(French) 被 \u00e9 替换了。” – 这听起来不错。你有什么问题?
-
是的,如果您在 python 中执行
print('\u00e9'),它会打印出é,因此表示是正确的。如果你看到\u00e9,那只是意味着你看到它的程序不理解口音。 -
httpResponse 将响应打印为 \u00e9。我想知道我需要进行哪些更改才能使响应打印出带重音的 e。
标签: python python-3.x encoding