1

当我通过 TextBox 输入并存储在数据库中时,例如:

"Under ( امارات .) english"

那么实际存储的是什么:

 "Under ( ??.?????.) english"

即使我使用数据类型作为 nvarchar(Max)。如何解决它?请尽快回复我。谢谢。

4

3 回答 3

1

希望这能阐明为什么需要将其存储为 Unicode (*N*varchar) [如 VahidN 所建议的] 以及为什么这与排序规则完全无关(如其他地方所建议的那样)

试试下面的代码:

CREATE TABLE t_test (
                      txt       varchar(1000) COLLATE Latin1_General_BIN,
                      arabic    varchar(1000)   COLLATE Arabic_100_CI_AI_KS_WS,
                      chinese   varchar(1000)   COLLATE Chinese_Simplified_Pinyin_100_CI_AI,
                      ntxt      nvarchar(1000) COLLATE Latin1_General_BIN,
                      narabic   nvarchar(1000)   COLLATE Arabic_100_CI_AI_KS_WS,
                      nchinese  nvarchar(1000)   COLLATE Chinese_Simplified_Pinyin_100_CI_AI,                      
                   )
GO
INSERT t_test (txt, arabic, chinese, ntxt, narabic, nchinese) 
VALUES ('Under ( امارات .) english',
        'Under ( امارات .) english',
        'Under ( امارات .) english',
        N'Under ( امارات .) english',
        N'Under ( امارات .) english',
        N'Under ( امارات .) english')

SELECT * FROM t_test
于 2013-09-30T12:29:59.697 回答
1

选择项目名称然后右键单击然后属性然后设置然后选择连接字符串单击列值然后选择....屏幕连接属性将出现在此屏幕上选择高级然后选择字符和赖特utf8然后选择将blobs作为utf8将值更改为true all阿拉伯语数据将传输到我的 sql。

于 2014-01-28T21:20:45.520 回答
1

试试 N'Unicode 数据'

N'Under ( امارات .) english'

而不是简单

'Under ( امارات .) english'

当您插入数据时。这里的 N 表示国家。

于 2013-09-30T08:57:09.790 回答