2012-02-15 111 views
13

如何在C#中解碼該字符串'Sch \ u00f6nen'(@"Sch\u00f6nen"),我試過HttpUtility但它沒有給出我需要的結果,即「Schönen 」。如何解碼一個字符串中的Unicode字符

+0

這是「Sch \ u00f6nen」 – 2012-02-16 00:03:11

回答

32

Regex.Unescape的伎倆解碼:

System.Text.RegularExpressions.Regex.Unescape(@"Sch\u00f6nen"); 

請注意,你需要測試你的變體或編寫單元測試時要小心:"Sch\u00f6nen"是已經"Schönen"。您需要在字符串前加@以將\u00f6作爲字符串的一部分。

1

如果您在此問題上着陸,因爲您看到"Sch\u00f6nen"(或字符串常量中的類似\uXXXX值) - 它不是編碼。這是一種將Unicode字符表示爲轉義序列的方式,類似於字符串表示新行\n和返回\r

我不認爲你必須解碼。

string unicodestring = "Sch\u00f6nen"; 
Console.WriteLine(unicodestring); 

Schönen輸出。

+0

當我在windows phone模擬器上輸出它時,它顯示爲「Sch \ u00f6nen」,所以它需要被轉義。回答我的問題,然後刪除他的帖子的用戶得到了正確的答案,我不知道他爲什麼刪除它。 – 2012-02-16 00:05:29

+0

我在控制檯應用程序中嘗試過。 WP平臺可能不同。 – findcaiyzh 2012-02-16 00:27:20

+1

我想你們兩個誤解了對方:) @findcaiyzh,如果你用'string unicodestring =「Sch \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\''使用從遠程端點檢索到的JSON結果時,這種情況通常很常見。 – 2018-02-21 15:14:04

0

你看過System.Text.Encoding類嗎?您可能能夠使用UTF-8編碼爲Unicode字符串內容

+0

在使用這些文本的Text.Encoding類中沒有任何內容。 – 2017-03-19 00:52:56

相關問題