我正在尝试为我的插入存储过程读取中文,XML 读取 SP 将批量输入参数作为 XML,然后使用“sp_xml_preparedocument”解析/读取它并插入表中。这里的问题是将中文读为“???” 人物。
下面是xml读取SP:
DECLARE @idoc int;
DECLARE @cnt int = 0;
EXEC sp_xml_preparedocument @idoc OUTPUT, '<?xml version="1.0" encoding="ISO-8859-1"?><DocumentElement><Specifications><ID>1</ID><Name>维</Name><Value>123</Value></Specifications><Specifications><ID>2</ID><Name>重量</Name><Value>123123</Value></Specifications></DocumentElement>'
SELECT @cnt = COUNT(*)
SELECT ID, Name, Value
FROM OPENXML (@idoc, '/DocumentElement/Specifications', 2)
WITH (ID int, Name nvarchar(MAX), Value nvarchar(MAX))
输出是: -
ID Name Value
1 ? 123
2 ?? 123123
你可以看到 Name 是作为 ??s in-place of Chinese characters 来的。我尝试将 XML 编码更改为 UTF-8 和 UTF-16,但没有运气。