草庐IT

.net - 如何将 UTF-8 编码为 UTF-16 的 xml 字符串转换为 UTF-16?

例如,假设我在字符串中有以下xml:如果我尝试将其插入到带有Xml列的SQLServer2005数据库表中,我将收到以下错误(我使用的是EF4.1,但我认为这无关紧要):XMLparsing:line1,character38,unabletoswitchtheencoding经过一些研究,我了解到SQLServer要求xml为UTF-16。我如何转换它? 最佳答案 我最初的几次尝试涉及流、字节数组和许多编码问题。事实证明,.NET中的字符串已经是UTF-16,因此只需要更改xml声明。其实答案很简单。这是一个将字符串加载到XmlD

sql-server - 存储过程不喜欢 utf-16

全部,我在SQLServer2005上有一个接受XML参数的存储过程。当我执行时:execPutResultsOnDb''我得到错误:XML解析:第1行,字符39,无法切换编码但是当我这样做的时候execPutResultsOnDb''它工作得很好。有什么想法吗? 最佳答案 第一种情况失败,因为您声明在ASCII字符串中使用UTF-16编码XML。第二种情况很可能有效,因为您没有任何超过127的字符,因此UTF-8与ASCII无法区分。如果要将XML声明为UTF-16,则需要使用N前缀将字符串声明为UCS-2(即mostlycomp

c# - 在 UTF16 列中存储 UTF8 数据

我将XML存储在SQLServer的XML列中。SQLServer在内部以UTF-16格式存储数据。因此,存储的XML必须采用UTF-16。我的XML是utf-8格式的,它在顶部有这个声明:当我尝试插入带有UTF-8声明的xml时,我收到一个异常,说明有关编码的内容。我可以通过两种方式轻松解决此问题:删除声明或通过将声明更改为:问题我不知道删除或替换声明是否“安全”或正确。我会丢失数据,还是XML会损坏?或者我是否必须将C#中的字符串从utf-8转换为utf-16? 最佳答案 C#将字符串存储在UCS-2中,这是UTF-16标准的旧

xml - VBA 使用 UTF-16 输出到文件

我有一个非常复杂的问题,很难正确解释。互联网上对此有很多讨论,但没有定论。非常感谢任何帮助或比我更好的解释。本质上,我只是尝试使用UTF-16和VBA编写XML文件。如果我这样做:sXML=""sXML=sXML&rest_of_xml_documentPrint#iFile,sXML然后我得到一个有效的XML文件。但是,如果我将“encoding=”更改为“utf-16”,我会从我的XML验证器中收到此错误:不支持从当前编码切换到指定编码。谷歌搜索告诉我这意味着xml编码属性与文件使用的实际编码不同,因此我必须通过打开和打印命令创建一个utf-8文档。如果我这样做:WithCreat

java - 在 30GB XML 数据集上搜索正则表达式模式。使用16GB内存

我目前有一个JavaSAX解析器,它正在从一个30GB的XML文件中提取一些信息。目前是:读取每个XML节点将其存储到一个字符串对象中,在字符串上运行一些正则表达式将结果存入数据库对于数百万个元素。我在具有16GB内存的计算机上运行它,但内存没有得到充分利用。有没有一种简单的方法可以从输入文件中动态“缓冲”大约10gb的数据?我怀疑我可以手动采用“生产者”“消费者”多线程版本(在一侧加载对象,使用它们并在另一侧丢弃),但是该死的,XML现在很古老,没有有效的库吗紧缩他们? 最佳答案 简单说一下,Java可以使用您的16GB内存吗?您

c# - 以 UTF8 而不是 UTF16 格式输出 DataTable XML

我有一个数据表,我正在使用.WriteXML(..)创建一个XML文件,尽管我在以UTF-16编码导出它时遇到问题,而且似乎没有明显的方法可以改变它。我了解.NET在字符串内部使用UTF-16,这是否正确?然后我运行DataTable.WriteXML()通过XSLT生成的XML,该XSLT在输出声明中包含以下内容:但是,转换的输出仍然是UTF16,而我尝试将此XML文件输入到的系统不支持UTF16。有没有办法强制输出为UTF-8? 最佳答案 结果文档的编码由encoding决定的属性指令--不是通过包含XSLT转换的XML文档的X

sql-server - 在 SQL Server 中将 UTF8 转换为 uTF16

我有一个应用程序,它从一些用PHP编写的Web服务接收XML,并将其插入到SQLServer数据库中。当我尝试插入接收到的包含波兰语变音符的XML时,我收到如下错误:XMLparsing:line2,character703,illegalxmlcharacter我试着做这样的事情:DECLARE@xmlXML;SET@xml='(hereIpastesomesampleXMLthatcontainsdiacriticalcharacters)';SELECT@xml=CAST(@xmlstrASXML);INSERTINTOvos_DirectXML_ut(ValidXML,sync

.net - 使用 XmlSerializer 读取 UTF-16 编码的 XML 文件

我正在调用WebService并获取从WebMethod返回的字符串。该字符串是一个序列化为XML的对象,应使用System.Xml.XmlSerializer对其进行反序列化。我的问题是第一行表明文档是UTF-16编码的:所以当反序列化时,我得到错误:ThereisanerrorinXMLdocument(0,0).执行string.Replace("utf-16","utf-8")确实有效,但必须有一个干净的方法让XmlSerializer知道吗? 最佳答案 这不应该影响任何东西-以下工作正常:usingSystem;using

java - UTF-16 编码

JaniALOKAshuTosh我的XML解析器仅支持UTF-8编码,否则它会给出SAX解析器异常。如何将UTF-16转换为UTF-8? 最佳答案 在那种情况下,它不是您正在使用的XML解析器,请参阅section2.2ofthexmlspecification:AllXMLprocessorsMUSTaccepttheUTF-8andUTF-16encodingsofUnicodeJavaxml解析器通常接收包装在InputSource中的输入目的。这可以用一个Reader参数来构造,该参数对给定的字符集进行字符解码。InputS

java - Xml如何设置UTF-16编码格式?

我需要将xml创建为要传递给服务器的字符串。我已经设法将数据转换为xml,但编码格式默认设置为utf-8。我需要的是我想将它设置为utf-16格式。但我还没有设置它的任何想法。privatevoidXmlCreation(intsize,Listitem)throwsParserConfigurationException,TransformerException{DocumentBuilderFactorydocumentBuilderFactory=DocumentBuilderFactory.newInstance();DocumentBuilderdocumentBuilder