【发布时间】:2019-04-11 11:45:33
【问题描述】:
我正在使用带有 .NET Core 2.1 的 C# WebApi。我在 appsetting.json 文件中有一个 JSON 属性,当它通过AddOptions 反序列化为 c# 时,£ 符号更改为 �
我可以向AddJsonOptions 添加一个设置以确保该符号不会被更改吗?
JSON "SomeProperty": "英镑 £",
C# 属性 SomeProperty="磅�"
【问题讨论】:
-
如果你能提供minimal reproducible example就太好了
-
您确实意识到并非所有字体都有
£字符。而且,如果您输出的字符在字体中没有映射,它通常会呈现为 U+FFFD(又名替换字符)并显示为�。 -
同意我们需要minimal reproducible example 来帮助您。您确定文件
appsetting.json编码正确吗? Json.NET 肯定支持有效的 Unicode 字符,所以问题很可能出在StreamReader级别。 -
即使文件编码存在一些您无法追踪的问题,您也可以随时在 JSON 中将 £ 转义为
"\u00A3",例如{"currency_sign" : "\u00A3"}。有关示例,请参见 dotnetfiddle.net/4ViVcv。
标签: c# json serialization asp.net-core-webapi asp.net-core-2.0