我有一個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