Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#将韩语字符串保存到文件,而不是utf格式字符串_C#_Json_System.text.json - Fatal编程技术网

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

c#将韩语字符串保存到文件,而不是utf格式字符串,c#,json,system.text.json,C#,Json,System.text.json,有一个类,数据。 数据有一个成员“name”,其中包含韩语字符串 我使用System.Text.json创建json字符串 JsonSerializer.Serialize<Data>(data, opt); json的一部分是 “名称”:“\uC0BC\uC131\uC804\uAE30” 但是Json字符串我想要的是 “名称”:“삼성전기“ 我试过了 File.WriteAllText(filePath, jsonstring, Encoding.Unicode) File.W

有一个类,数据。 数据有一个成员“name”,其中包含韩语字符串

我使用System.Text.json创建json字符串

JsonSerializer.Serialize<Data>(data, opt);
json的一部分是

“名称”:“\uC0BC\uC131\uC804\uAE30

但是Json字符串我想要的是

“名称”:“삼성전기

我试过了

File.WriteAllText(filePath, jsonstring, Encoding.Unicode)
File.WriteAllText(filePath, jsonstring, Encoding.Default)
但文件内容的格式是\uxxx

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

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

(示例)


您可能想要的是-从一开始:

opt.Encoder=JavaScriptEncoder.UnasseredJSonescaping;
(显然,不要经常更改此选项-仅设置一次;如果不同的用法需要不同的选项:使用不同的选项对象)

这使得
名称
未被转义,而不是在JSON中转义。然后,您可以按照自己喜欢的方式对
字符串进行编码


您还应该注意,名称
unasseredJSONESCAPING
表明可能存在不希望出现这种情况的场景,因此:值得尝试了解这是什么时候以及为什么。

jsonstring
中的值是什么?如果
jsonstring
包含
的“名称”:“\uC0BC\uC131\uC804\uAE30”
,则这就是字符串所包含的内容,并且它将始终包含该内容。你如何编码并不重要;真正的问题是:如何让
JsonSerializer
不转义这些值。您能否显示生成
jsonstring
的代码?注意:这可能归结为设置
opt.Encoder=…
(对某些东西)看起来像的副本,同意吗?
File.WriteAllText(filePath, jsonstring, Encoding.Unicode)
File.WriteAllText(filePath, jsonstring, Encoding.Default)
import json
dict = {'555': '123'}
with open('file.txt', 'w', encoding='UTF-8') as file:
file.write(json.dumps(dict))