【问题标题】:Encoding special characters in c#在c#中编码特殊字符
【发布时间】:2013-05-28 07:42:43
【问题描述】:

在我的 c# 应用程序中,我以 xml 的形式接收发布数据。在 xml 中,我有一个接收为“SmÃ¥senter (Sandvika SmÃ¥senter)”的属性。在插入数据库之前,我需要将其编码为 "Småsenter (Sandvika Småsenter)" 。我尝试使用下面的代码,

string name = "Småsenter (Sandvika Småsenter)";
name = HttpUtility.HtmlDecode(name);

也试过name = HttpUtility.HtmlEncode(name);

但它没有给出预期的输出。 是否有任何建议以获得预期的字符。

问候

桑吉塔

【问题讨论】:

  • 听起来你的 XML 一开始就被破坏了——为什么它不能正确地编码字符?是什么创建了这个 XML,你是如何解析它的?
  • 你的xml文档的header是否指定了编码?

标签: c# encoding


【解决方案1】:

您刚刚遇到Mojibake,这是由于混合文本编码造成的。您需要使用相同的编码来写入和读取 XML,最好是 Unicode 编码,例如 UTF-8。您不应该尝试修复损坏的字符串,例如“SmÃ¥senter”,而应首先使其不损坏。

【讨论】:

  • +1,也无法自动检测100%成功的编码,即有这样的算法但有时找不到正确的编码
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-09-26
  • 2017-09-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多