【问题标题】:How do i escape html unicode in .net?如何在 .net 中转义 html unicode?
【发布时间】:2011-06-26 15:28:47
【问题描述】:

在网页中,我收到了文本 \u30ca\u30bf\u30ea\u30a2。它应该翻译成ナタリア。我只是不知道如何在.NET 中做到这一点。我尝试了 HttpUtility.HtmlDecode,当失败时我尝试了 HttpUtility.UrlDecode。没有运气

【问题讨论】:

  • 好的,你得到的输出是什么(或错误)......这将有助于我们追踪问题......如果你能向我们展示你正在尝试的代码,那就更好了......可能是它Base64 转换有一些问题.. 或 UTF16 字符.. 你能提供更多细节
  • 我已经更新了我的答案

标签: c# .net html escaping decode


【解决方案1】:

好的,如果您的字符串被转义,您将需要手动将字符串转换为 unicode.. 或者我有更好的方法。 JSON 接受转义的 Unicode 字符并将其转换为普通字符,所以试试这个(JavaScriptSerializerSystem.Web.Script.SerializationSystem.Web.Extensions.dll):

string d = @"\u30ca\u30bf\u30ea\u30a2";
Console.WriteLine("Unicode Escaped:" + d);
JavaScriptSerializer jr = new JavaScriptSerializer();
string dt = jr.Deserialize<string>("\"" + d + "\"");
Console.WriteLine("Converted:" + dt);

输出是:

Unicode Escaped: \u30ca\u30bf\u30ea\u30a2

Converted: ナタリア


如果您仍然想手动执行 n 代码。这个带有代码的答案就是你想要的:

Convert a Unicode string to an escaped ASCII string

我不想太夸大他的代码。

【讨论】:

  • 我认为他们是在说他们有一个包含反斜杠的字符串。你知道,像这样:string d = @"\u30ca\u30bf\u30ea\u30a2";。然后他们想知道如何取消d
  • @icktoofay 好的,我已经改变了我的答案.. 曾经否决我的人可以取消他的投票
猜你喜欢
  • 2013-04-18
  • 2011-03-10
  • 2010-09-16
  • 1970-01-01
  • 2015-02-11
  • 2015-11-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多