【发布时间】:2021-04-30 09:39:53
【问题描述】:
有一个类,Data。 数据有一个成员“name”,其中包含韩文字符串。
我用 System.Text.Json 制作 json 字符串
JsonSerializer.Serialize<Data>(data, opt);
制作json文件
File.WriteAllText(filePath, jsonstring, Encoding.UTF8);
json的一部分是
“名称”:“\uC0BC\uC131\uC804\uAE30”,
但是我想要的是Json字符串
"姓名": "삼성전기",
我试过了
File.WriteAllText(filePath, jsonstring, Encoding.Unicode)
File.WriteAllText(filePath, jsonstring, Encoding.Default)
但是文件的内容是这种格式\uxxxx。
如何将韩文字符串原样保存到文件中?
(作为参考) 当我尝试找到解决方案(对于 C#)时,我在 Python 中找到了函数(json.dumps) 使用它就能得到我想要的结果
(示例)
import json
dict = {'555': '123'}
with open('file.txt', 'w', encoding='UTF-8') as file:
file.write(json.dumps(dict))
【问题讨论】:
-
jsonstring的值是多少?如果jsonstring包含"name": "\uC0BC\uC131\uC804\uAE30",那么这就是字符串包含的内容,并且它将始终包含。你如何编码那无关紧要;然后真正的问题后退一步:如何让JsonSerializer不逃避这些价值观。你能展示产生jsonstring的代码吗?注意:这可能归结为设置opt.Encoder = ...(对某事) -
看起来像 dotnet core System.Text.Json unescape unicode string 的副本,同意吗?
标签: c# json system.text.json