c# 将韩语字符串保存到文件,而不是 utf 格式的字符串

c# Save korean string to file, not utf form string

有一个class,数据。 数据有一个成员,“名称”,其中包含韩文字符串。

我用 System.Text.Json

制作 json 字符串
JsonSerializer.Serialize<Data>(data, opt);

并制作json文件

File.WriteAllText(filePath, jsonstring, Encoding.UTF8);

json的一部分是

"name": "\uC0BC\uC131\uC804\uAE30",

但是Json字符串我想要的是

"name": "삼성전기",

我试过了

File.WriteAllText(filePath, jsonstring, Encoding.Unicode)
File.WriteAllText(filePath, jsonstring, Encoding.Default)

但是文件的内容是这种格式的\uxxxx。

如何将韩语字符串原样保存到文件中?

(作为参考) 当我试图找到解决方案(针对 C#)时,我在 Python 中找到了 function(json.dumps) 我可以通过使用它得到我想要的结果

(示例)

import json
dict = {'555': '123'}
with open('file.txt', 'w', encoding='UTF-8') as file:
file.write(json.dumps(dict))

您可能想要的是 - 就在开头:

opt.Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping;

(显然不要经常更改它 - 只设置一次;如果不同的用法需要不同的选项:使用不同的选项对象)

这使得 Name 未转义,而不是在 JSON 中转义 从那里,您可以随心所欲地对 string 进行编码。

您还应注意,名称 UnsafeRelaxedJsonEscaping 暗示可能存在不希望出现的情况,因此:值得尝试 read the documentation on UnsafeRelaxedJsonEscaping 了解 何时为什么这是.