2015-12-31 163 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字符串。