【问题标题】:Too many characters in character literal while converting HTML Tag to Entity reference将 HTML 标记转换为实体引用时,字符文字中的字符过多
【发布时间】:2013-09-20 09:23:34
【问题描述】:

我已经通过 C# 代码生成了一个 HTML 标记。我能够在文本区域中正确呈现。当我用谷歌搜索时,我找到了this。要在文本区域中呈现 HTML 标签,我们需要将 '' 转换为 HTML 实体引用。但是当我尝试使用String.Replace 替换时,它会抛出一个错误:Too many characters in character literal .

string psHtmlOutput="<html><body><table border='0' cellspacing='3' cellpadding='3'><tr><th> Name </th><th>DomainName</th><th>DomainType</th><th>Defualt</th></tr><tr><td>india.local</td><td>india.local</td><td>Authoritative</td><td>True</td></tr></table></body></html>";

psHtmlOutput.Replace('>','&gt;');
psHtmlOutput.Replace('<','&lt;');

错误:字符文字中的字符过多

请帮忙;我该如何继续?

【问题讨论】:

    标签: html string c#-4.0


    【解决方案1】:

    String.Replace 方法有两个重载:

    1. Strings 上运行。
    2. Chars 上运行。

    在 C# 中,单引号用于指定 Char 文字。因为您使用了单引号,所以使用了该方法的第二个重载。但是,您的第二个参数不是有效的字符文字,因为 &amp;gt; 不是单个字符。

    所以如果你真的想用字符串替换字符,只需使用带字符串的重载:

    psHtmlOutput.Replace(">", "&gt;");
    psHtmlOutput.Replace("<", "&lt;");
    

    【讨论】:

    • 谢谢。我现在已经尝试过转换。但我无法在 Textarea 中正确渲染。它只是这样渲染。请提供信息如何进行。
    • 我认为您应该将其作为一个单独的问题发布。确保还说明您如何将文本放入 &lt;textarea&gt; 以及您使用哪些库/框架来生成 HTML。
    猜你喜欢
    • 1970-01-01
    • 2022-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-04
    • 2010-09-28
    • 2023-03-30
    相关资源
    最近更新 更多