【问题标题】:C# Encode a string with multiple types of characters to HTMLC# 将具有多种类型字符的字符串编码为 HTML
【发布时间】:2013-06-13 05:49:01
【问题描述】:

我有一个疑问,我什至不确定这是什么疑问。我只是解释一下。

我需要将 C# Windows 表单中可能包含任何类型字符的字符串转换为 HTML 格式。我需要这个才能在我的程序中使用现有工具,所以它必须完全像这样。

问题是HtmlEncode 函数没有按预期工作。我找到了一个完全符合我需要的网站。该网站是:http://web.forret.com/tools/html.asp

当我在这个网站上发布字符串时:

"® € ì Ù Ω µ drokluží zlůd paněž  Ř  ř common text"

并将其转换为我得到的html:

"® € ì Ù Ω µ drokluží zlůd paněž  Ř  ř common text"

我需要在 C# 中获得完全相同的内容。请注意,当我询问转换时,原文更改为:

"® **€ ì Ù Ω µ drokluží zlůd paněž  Ř  ř common text**"

所以我相信预转换是在最终转换之前完成的。我就是找不到。

注意HTMLEncode 产生

"® € ì Ù Ω µ drokluží zlůd paněž  Ř  ř common text"

它甚至不转换一些符号,如 Ω 或外国文本 zlůd paněž Ř ř**

我已经在这方面浪费了大量时间,因此非常感谢任何形式的帮助。我希望问题足够清楚。

【问题讨论】:

  • @ASGM 谢谢,看起来确实好多了:)
  • 不客气,但真正的功劳应该归于@rivimey(我只是稍微修改了他们的编辑),但我是最新的编辑,因为我批准了他们的更改。

标签: c# html winforms encode


【解决方案1】:

您正在查看以下代码:

public string HTMLEncodeSpecialChars(string text)
{
  System.Text.StringBuilder sb = new System.Text.StringBuilder();
  foreach (char c in text){
    if(c>127) // chars not in ASCII
      sb.Append(String.Format("&#{0};",(int)c));
    else
      sb.Append(c);
  }
  return sb.ToString();
}

【讨论】:

  • 这段代码没有特殊情况下的输入字符&,它需要。
  • 它确实有效,尽管输出代码与该网站的不完全相同。谢谢!!就2个问题。 1- 从技术上讲,该功能正在做什么?基本上,我需要什么? (因为我只知道我需要那个最终结果,所以我不知道我在看什么)。 2 - 你能提供反向代码吗?
  • @viper 1) 它将 ASCII 中不存在的任何字符(因此代码号大于 127)转换为 HTML 编码的等效字符。普通的 C# 函数也可以,但它解码了不在 UTF-8 中的字符。
  • @viper 2) 对于反向代码,您可以使用标准方法:msdn.microsoft.com/en-us/library/7c5fyk1k.aspx
  • 只是想一想:ISTR 有一个系统字符类型模块,其中包括诸如 IsPrint(x) 之类的内容:字符 x 是否可打印?这将是比 Garath 或我给出的更好的测试。
【解决方案2】:

如果你的输入是 UTF,你能不能只用一个循环解析文本(伪代码)

foreach char in string
    if char code greater than 126
        print "&#" + charcode + ";"
    else if char is &
        print "&"
    else 
        print char

可能的改进...

最好使用实体字符串 IMO,因为它们对人类读者来说更清晰,并且不太可能被计算机误解。但是,以上应该可以工作...

【讨论】:

  • 我会尝试并回复你
  • 我确实相信这会起作用,但是,当我这样做时,有人用代码发布了它!无论如何,非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-09-22
  • 1970-01-01
  • 2023-03-04
  • 2012-08-24
  • 2017-06-25
  • 2012-06-24
相关资源
最近更新 更多