2012-02-15 76 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

相关问题