我有一个nvarchar现场数据与ASCII格式的数据: “ZARDFrèresGuesta”SQL Server 2005中转换Ascii码为Unicode(UTF-8 - > nvarchar的)
如何将其转换为可读(unicode)格式在T - SQL?
我有一个nvarchar现场数据与ASCII格式的数据: “ZARDFrèresGuesta”SQL Server 2005中转换Ascii码为Unicode(UTF-8 - > nvarchar的)
如何将其转换为可读(unicode)格式在T - SQL?
我认为你所说的是你有两个连续的unicode字符(高字节可能都是0字节)中的单个unicode字符的两个字节应该是什么。如果您在插入期间没有正确处理代码页,则可能会出现各种原因。
您需要将这些返回到单个字节,然后重新编码数据。
我认为你的问题是当你在OPENROWSET中加载数据时,你正在使用CODEPAGE = 1252(单字节字符集)。
使用try 1202(UTF-16),或可能是1208(UTF-8)
干杯
我相信代码页65001应该可以做到。 https://connect.microsoft.com/SQLServer/feedback/details/370419/bulk-insert-and-bcp-does-not-recognize-codepage-65001?wa=wsignin1.0 – 2010-05-19 23:30:10
http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=62406具有这样的功能,将执行以下操作:
select dbo.utf8_to_utf16('Zard Frères Guesta')
结果:
Zard Frères Guesta
这些值以该格式存储在文本文件中(例如ZardFrèresGuesta),我正在使用使用openrowset批量插入以导入数据。 – Guazz 2010-05-19 22:55:44
选择从OPENROWSET somecolofdata \t \t \t(BULK '' '+ @filePath + '\' + @FileName + ''', \t \t \t \t \t FORMATFILE = '' '+ @formatFileName + ''', \t \t \t \t \t错误文件= '' '+ @errorFileName + ''', \t \t \t \t \t FIRSTROW = 2,\t \t \t \t \t \t \t \t \t CODEPAGE = 1252,\t \t \t \t \t \t \t \t \t \t MAXERRORS = 1000 \t \t \t \t)作为importeddata – Guazz 2010-05-19 22:56:33
这是格式文件条目: –
Guazz
2010-05-19 22:58:02