编码 xml 并保存到 SQL 服务器

Encoding xml and saving to SQL Server

有一个 Web 应用程序可以让您粘贴文本并将其保存到数据库。

文本有 €(欧元货币)符号,一旦它到达数据库,它在解析 SQL 中的 XML 时崩溃。原因是无效字符。

我通过使用 C# 在 Web API 中将 € 替换为 € 解决了这个问题。现在 XML 包含 € 并且它被解析为 SQL。我查看数据库中保存的行,它显示 €。太棒了!

我返回 Web 应用程序并调出保存的文本。我希望看到“€52.9mm”,但我看到的却是“52.9mm”。

我按 F12 键,刷新并看到它确实检索到存储在数据库中的“€52.9mm”。但是 UI 显示“52.9mm”。

对于踢球,我将数据库中的值更改为 € 52.9mm。 UI 的刷新现在显示“€52.9mm”。

将数据库中的文本保存为 € 52.9mm 是否可行?

如果可行,我如何才能将其保存为 XML 中的这种格式?但在它被 SQL 解析后,它被保存为 €52.9mm。

有没有更好的解决方案?

最好的方法是使用 CDATA 将 HTML 包裹在 XML 标签元素中。那么你不需要担心转义或转换非xml安全字符。

现在您还没有显示有关构建此 xml 文件的任何详细信息,但让我们采用标准 XElement。要将内容保存为 CDATA,您只需编写..

xDocument.Add(new XElement("MyHtml", new XCData("<p>My HTML Content</p>"));

CDATA

CDATA sections may occur anywhere character data may occur; they are used to escape blocks of text containing characters which would otherwise be recognized as markup. CDATA sections begin with the string <![CDATA[ and end with the string ]]>

http://www.w3.org/TR/REC-xml/#sec-cdata-sect