非法的xml解析导入到sql mac roman

时间:2013-09-23 19:27:40

标签: sql xml utf-8 notepad++ mac-roman

我有一个xml,说它的编码是UTF-8。当我使用openxml将数据导入sql时,我总是得到“XML解析:行xxxxxx,字符xx,非法xml字符。

现在我可以去每一行并用一个合法的角色代替它,并且进展顺利。有时可能会有超过5个mac罗马字符,替换它会变得乏味。我目前正在使用notepad ++,可能还有一种方法。

任何人都可以建议是否可以在sql级别完成任务或者在sql中运行之前是否必须进行检查?

到目前为止,发现的大多数字符是x95,x92,x96,xbc,xbd,xbo。

感谢。

1 个答案:

答案 0 :(得分:0)

在您的问题中,您没有指定您必须删除的非法字符是否为Unicode。或者文件是否真的需要包含UTF-8字符。与ASCII for UTF-8 some byte combinations are illegal不同,因此如果您声明要以UTF-8编码的文本文件,您可能无法成功读取它直到结束(这种情况永远不会发生在ASCII上)。

因此有可能通过删除<?xml version="1.0" encoding="UTF-8"?>您刚刚声明了文件的一些非unicode编码(而不是之前声明的UTF-8),因此读取传递的数据。你在文件中没有像ľťčý这样的外国字符,是吗?通常情况下,检查导入后发生的情况是必须。您的导入可能会没有错误地传递,但是城市名称Čadca变为äadca,并且有人会感谢您的公司使其地址无法读取。