【问题标题】:Can't Convert unicode Data into XML column in sql server 2008无法在 sql server 2008 中将 unicode 数据转换为 XML 列
【发布时间】:2010-11-02 05:07:39
【问题描述】:

我在 sql 2008 中已经有一个包含 3 列的表(Id bigint,Title nvarchar(450),Description nvarchar(MAX))

我决定将 Title 和 Description 列转换为一个 XML 列。但是在尝试更新时会出现许多错误,例如“非法名称字符”或“非法限定名称字符”等。

为了解决这个问题,我只需使用 subsonic 2.1 使用以下代码创建 Windows 应用程序

MyTable tbl = new MyTable(1111);
tbl.myXMLcol = "<Person><Title><![CDATA[ " + HttpUtility.HtmlEncode(tbl.Title) + " ]]></Title><Description><![CDATA[ " + HttpUtility.HtmlEncode(tbl.Description) + " ]]></Description></Person>";
tbl.Save();

然后尝试将"&lt;?xml version=\"1.0\" encoding=\"utf-16\"?&gt;" 添加到上面第一个出现错误“无法切换编码”的字符串中。

注意:我也使用this method 删除非法字符,但不能解决我的问题

注意2:我尝试更新出现此错误的日语记录,但英语可以正常工作。

你能帮帮我吗?

谢谢。

【问题讨论】:

  • 您使用的编码是什么?

标签: sql-server xml sql-server-2008 encoding subsonic


【解决方案1】:

经过多次研究,我找到了关于我的问题的文章。 请看Tarun Ghosh post

【讨论】:

    【解决方案2】:

    为什么不直接在 SQL Server 中完成所有这些操作?你可以试试这个:

    UPDATE YourTable
    SET XmlCol = CAST(N'<Person><Title>' + Title + 
                      N'</Title><Description>' + Description + 
                      N'</Description></Person>' AS XML)
    WHERE ID = 12345
    

    这行得通吗?如果没有,那么也许这里有这个?

    UPDATE YourTable
    SET XmlCol = CONVERT(XML, N'<Person><Title>' + Title + 
                              N'</Title><Description>' + Description + 
                              N'</Description></Person>', 2)
    WHERE ID = 12345
    

    风格的“2”将去掉 SQL Server 不喜欢的关于 XML 的东西——比如 DTD 等等。也许这对你的情况也有帮助?

    在从外部导入 XML 时,我在 SQL Server 的 XML 支持方面遇到了各种问题。通常,无论如何,它最终都会起作用:-)

    马克

    【讨论】:

    • 感谢您的回复,但您的任何方法都不适用于我,我收到错误“非法 xml 字符”
    【解决方案3】:

    我认为您应该使用 UTF-8 编码。

    您可以在此处找到有关编码的更多信息:

    http://www.ibm.com/developerworks/xml/library/x-utf8/

    此外,您还可以在此处找到更多信息:

    http://msdn.microsoft.com/en-us/library/ms131375.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-05-24
      • 2015-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-04
      • 1970-01-01
      相关资源
      最近更新 更多