我有一个数据库(SQL Server 2012),其中有很多Unicode数据,其中从Web应用程序插入的记录,但字符保存在wen字符编码' western'但它们是Unicode 当这些数据显示在浏览器中时,浏览器会自动将其字符编码更改为' Unicode'并显示正确的字符,但我想在我的应用程序中使用这些数据,我想用真正的Unicode字符更改它们
例如,字符保存在这样的表中(使用' western'编码):
پیشرÙت 50 درصدی مخزن ذخیره آب بوشهر
我希望将它们转换为unicode编码,如下所示:
پیشرفت 50 درصدی مخزن ذخیره آب بوشهر
答案 0 :(得分:2)
与Martin Smith和marc_s一样,如果您将使用unicode字符,则需要使用NVARCHAR
数据类型。
或者您可以使用VARCHAR
数据类型以及类似
CREATE TABLE #TestTable
(
Column1 VARCHAR(100) COLLATE Latin1_General_100_CI_AI, --<-- VARCHAR Column with Default Collation
Column2 VARCHAR(100) COLLATE Arabic_CI_AI_KS_WS, --<-- VARCHAR Column with Arabic Collation
Column3 NVARCHAR(100), --<-- NVARCHAR Column with Default Collation
Column4 NVARCHAR(100) COLLATE Arabic_CI_AI_KS_WS --<-- NVARCHAR Column with Arabic Collation
)
INSERT INTO #TestTable
VALUES(N'پیشرفت 50 درصدی مخزن ذخیره آب بوشهر'
,N'پیشرفت 50 درصدی مخزن ذخیره آب بوشهر'
,N'پیشرفت 50 درصدی مخزن ذخیره آب بوشهر'
,N'پیشرفت 50 درصدی مخزن ذخیره آب بوشهر')
SELECT * FROM #TestTable
<强>结果强>
Column1 Column2 Column3 Column4
?????? 50 ????? ???? ????? ?? ????? پيشرفت 50 درصدي مخزن ذخيره آب بوشهر پیشرفت 50 درصدی مخزن ذخیره آب بوشهر پیشرفت 50 درصدی مخزن ذخیره آب بوشهر
答案 1 :(得分:-4)
最后我使用这个脚本将字符编码从西方转换为unicode,但这是另一种简单方法:
DECLARE @UnicodeString as nvarchar(max)
set @UnicodeString=
replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(@WesternCharacter,N'Û°' , N'0'),N'Û±' , N'1'),N'Û²' , N'2'),N'Û³' , N'3'),N'Û´' , N'4'),N'Ûµ' , N'5'),N'Û¶' , N'6'),N'Û·' , N'7'),N'Û¸' , N'8'),N'Û¹' , N'9'),N'Ø¢' , N'آ'),N'ا' , N'ا'),N'Ø£' , N'أ'),N'Ø¥' , N'إ'),N'ؤ' , N'ؤ'),N'ئ' , N'ئ'),N'Ø¡' , N'ء'),N'ب' , N'ب'),N'Ù¾' , N'پ'),N'ت' , N'ت'),N'Ø«' , N'ث'),N'ج' , N'ج'),N'Ú†' , N'چ'),N'Ø' , N'ح'),N'Ø®' , N'خ'),N'د' , N'د'),N'Ø°' , N'ذ'),N'ر' , N'ر'),N'ز' , N'ز'),N'Ú˜' , N'ژ'),N'س' , N'س'),N'Ø´' , N'ش'),N'ص' , N'ص'),N'ض' , N'ض'),N'Ø·' , N'ط'),N'ظ' , N'ظ'),N'ع' , N'ع'),N'غ' , N'غ'),N'Ù' , N'ف'),N'Ù‚' , N'ق'),N'Ú©' , N'ک'),N'Ú¯' , N'گ'),N'Ù„' , N'ل'),N'Ù…' , N'م'),N'Ù†' , N'ن'),N'Ùˆ' , N'و'),N'Ù‡' , N'ه'),N'ÛŒ' , N'ی'),N'ÙŠ' , N'ي'),N'Û€' , N'ۀ'),N'Ø©' , N'ة'),N'ÙŽ' , N'َ'),N'Ù' , N'ُ'),N'Ù' , N'ِ'),N'Ù‘' , N'ّ'),N'Ù‹' , N'ً'),N'ÙŒ' , N'ٌ'),N'Ù' , N'ٍ'),N'ØŒ' , N'،'),N'Ø›' , N'؛'),N',' , N','),N'ØŸ' , N'؟'),N'‌',N''),N'Ùƒ',N'ک')
RETURN @UnicodeString