如何在SQL Server中存储阿拉伯语?

时间:2013-12-27 08:47:17

标签: sql-server sql-server-2005 collation

我正在尝试将阿拉伯字符串存储在我的数据库中。使用COLLATE Arabic_CI_AI_KS_WS工作正常,但有些阿拉伯语记录缺少一些阿拉伯字母。我尝试了一些其他的解决方案,但结果相同。怎么解决? 表格结构

CREATE TABLE [dbo].[Ayyat_Translation_Language_old_20131209] (
    [Ayat_Translation_Language_ID] INT            IDENTITY (1, 1) NOT NULL,
    [Translation_Laanguage_ID]     INT            NULL,
    [Juz_ID]                       INT            NULL,
    [Surah_ID]                     INT            NOT NULL,
    [Ayat_Description]             VARCHAR (2000) COLLATE Arabic_CI_AI_KS_WS NOT NULL
)

插入代码:

 string query = "insert into Ayyat_Translation_Language_old_20131209 values(null,null," + surah + ",N'" + verse + "')"; where verse contains Arabic contents.

并存储这样的数据(带问号):

?بِسْمِ اللَّهِ الرَّحْمَ?نِ الرَّحِيمِ

我已阅读该链接:store arabic in SQL database

4 个答案:

答案 0 :(得分:7)

要存储unicode字符串数据,请使用NVARCHAR(2000)而不是VARCHAR(2000)[Ayat_Description]

参考:nchar and nvarchar

答案 1 :(得分:2)

这可能会有所帮助

CREATE TABLE [dbo].[Ayyat_Translation_Language_old_20131209] (
    [Ayat_Translation_Language_ID] INT            IDENTITY (1, 1) NOT NULL,
    [Translation_Laanguage_ID]     INT            NULL,
    [Juz_ID]                       INT            NULL,
    [Surah_ID]                     INT            NOT NULL,
    [Ayat_Description]             NVARCHAR (2000) COLLATE Arabic_CI_AI_KS_WS NOT NULL

答案 2 :(得分:2)

你所要做的就是确保

column Data typenvarchar()

screenshot of <code>AnnotationSample</code> result

之后我插入阿拉伯语,即使使用Tashkeel

也没有问题

enter image description here

这在SQl server management studio 2012

答案 3 :(得分:1)

使用arabic collationuse unicode(nvarchar(max))

这是一个示例表您的答案:

CREATE TABLE #t11
        (

        column1 NVARCHAR(100) 

        )
        INSERT INTO #t11 VALUES(N'لا أتكلم العربية')

        SELECT * FROM #t11

fiddle demo