阿拉伯语文本未保存在数据库中

时间:2013-09-30 04:47:48

标签: c# asp.net sql-server arabic

当我通过TextBox提供输入并存储在数据库中时:

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

所以实际存储的是什么:

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

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

3 个答案:

答案 0 :(得分:1)

尝试N'Unicode数据'

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

而非简单

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

插入数据时。 N在这里意味着国家。

答案 1 :(得分:1)

希望这能说明为什么你需要将它存储为Unicode(* N * varchar)[由VahidN建议]以及为什么它与Collat​​ion绝对没有关系(如其他地方所建议的那样)

请尝试以下代码:

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

答案 2 :(得分:1)

选择projectname然后右键单击然后proparties然后设置然后选择conniction字符串单击列值然后选择....屏幕连接proparties将出现在此屏幕上选择advanced然后选择character和wright utf8然后选择treat blobs作为utf8更改值为了真实所有阿拉伯数据将转移到我的SQL。