2015-12-31 162 views
3

当我尝试在C#中检索JSON格式的SQL表内容时,例如:在JSON serilize之后,Baden-Württemberg的内容被视为“Baden-W \ u00FCrttemberg”。我尝试这个如何将字符串编码为Json字符串文本?

byte[] bytes = Encoding.UTF8.GetBytes(input); 
input = Encoding.UTF8.GetString(bytes); 
var output = JsonConvert.SerializeObject(input); 

,但我得到 “巴登 - 符腾堡州” 我真的很想要一个像演示http://www.percederberg.net/tools/text_converter.html,输入类型是明文,ISO-Latin-1的

Baden-Württemberg 

和输出类型是JSON/JavaScript的/ Java的 - 字符串文本

"Baden-W\u00FCrttemberg" 

我怎么能在C#.net做

+0

你应该使用Encoding.GetEncoding(“iso-8859-1”),让我知道如果这对你有用。 – DeJaVo

回答

3

你可以告诉JSON.NET逃避所有非ASCII字符是这样的:

var json = JsonConvert.SerializeObject("Baden-Württemberg", new JsonSerializerSettings 
{ 
    StringEscapeHandling = StringEscapeHandling.EscapeNonAscii 
}); 

json值将为:

"Baden-W\u00fcrttemberg" 

而且,您可以通过ASCII编码的通道发送所产生的JSON字符串。