【问题标题】:Remove HTML Encoded characters删除 HTML 编码字符
【发布时间】:2013-01-02 06:35:10
【问题描述】:

我正在从数据库中获取一些数据,它具有 HTML 编码字符 ( )。有哪些选项可以删除这些?

我根本不希望这些渲染...我希望将它们从数据中剥离。

目前我并不担心 HTML 标签...只是编码字符。

编辑:如果相关,这些字符会导致 JSON 验证出现一些错误。

【问题讨论】:

  • 你能阻止他们进入吗?
  • 如何输出 JSON?在我看来,JSON 库应该能够轻松处理 HTML 编码字符的编码/解码。
  • @ErikPhilips 在某些地方并不是真的需要它们,但在 datatable.net 表中它们会引起问题。

标签: c# asp.net-mvc-3 html-encode


【解决方案1】:

如果您想删除它们,请获取此类字符的列表或匹配它们的正则表达式(例如&[a-z]+;)并进行搜索和替换。

但是,如果您只希望它们因 JSON 验证错误而消失,则应正确生成/编码 JSON 以避免错误。 (但是,我真的不明白它们如何导致无效的 JSON。)

【讨论】:

  • 每当它被datatables.net 编码/使用时,它都会导致验证问题(我相信)。 第 8 行解析错误:...ado", ""BeginAllYourAdventur ----------------------^ Expecting '}', ':', ',', ']'
  • 不知何故,一个引号字符" 进入了那里,结束了字符串并弄乱了 JSON。 &; 在 JSON 中没有特殊含义," 有。我建议您创建一个演示完整问题(包括生成的 JSON)的最小示例,因为我认为它通常与 HTML 实体没有太大关系。
【解决方案2】:

这里不应该只使用正则表达式进行修剪。例如  也可以编码为 ,但&\#[0-9]+; 正则表达式会导致数据丢失,因为在某些时候几乎每个字符都可以像这样编码 (例如:<p>HELLO</p>)。

【讨论】:

    猜你喜欢
    • 2011-05-13
    • 2012-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-18
    • 2011-05-03
    相关资源
    最近更新 更多