Как хранить арабский язык в SQL-сервере?

Я пытаюсь сохранить арабские строки в моей базе данных. он работает нормально с помощью COLLATE Arabic_CI_AI_KS_WS но в некоторых арабских записях отсутствуют некоторые арабские алфавиты. Я попытался с другим Sollate, но результат, как то же самое. как это исправить?структура таблицы:

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.

и это хранит данные как это (с вопросительными знаками):

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

Я прочитал эту ссылку: хранить арабский язык в базе данных SQL

4 ответа

Решение

Для хранения строковых данных Unicode используйте NVARCHAR(2000) скорее, чем VARCHAR(2000) для столбца [Ayat_Description]

Ссылка: нчар и нварчар

Все, что вам нужно сделать, это убедиться, что

column Data type является nvarchar()

после этого я вставил арабский без проблем даже с Tashkeel

это в SQl server management studio 2012

Может помочь

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

Использование arabic collation или же use unicode(nvarchar(max))

Это пример таблицы для вашего ответа:

CREATE TABLE #t11
        (

        column1 NVARCHAR(100) 

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

        SELECT * FROM #t11

демонстрация скрипки

Другие вопросы по тегам