0

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

现在我可以转到每一行并将其替换为合法字符,并且运行良好。有时可能有超过 5 个 mac 罗马字符,替换起来很繁琐。我目前正在使用记事本++,可能有一种方法。

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

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

谢谢。

4

1 回答 1

0

在您的问题中,您没有指定必须删除的非法字符是否为 Unicode。或者该文件是否真的应该包含 UTF-8 字符。与 ASCII 不同,对于 UTF-8,某些字节组合是非法的,所以如果您声明文本文件以 UTF-8 编码,您可能无法成功读取它直到结束(这样的事情永远不会发生在 ASCII )。

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

于 2014-04-10T21:10:07.107 回答