сохранение арабского языка в базе данных SQL

Я пытался сохранить арабскую строку в базе данных SQL 2008, но она была преобразована в «знак вопроса», почему? и что мне делать?

24
задан OMG Ponies 24 August 2010 в 08:35
поделиться

1 ответ

Вам нужно выбрать арабскую сортировку для столбцов varchar / char или использовать Unicode (nchar / nvarchar)

CREATE TABLE #test
(
col1 VARCHAR(100) COLLATE Latin1_General_100_CI_AI,
col2 VARCHAR(100) COLLATE Arabic_CI_AI_KS_WS,
col3 NVARCHAR(100)
)
INSERT INTO #test VALUES(N'لا أتكلم العربية',N'لا أتكلم العربية',N'لا أتكلم العربية')

Обратите внимание на N перед значениями в инструкции вставки выше. Если вы не укажете это, система будет обрабатывать значения как Varchar, а не NVarchar.

SELECT * FROM #test

Returns

col1                           col2                           col3
------------------------------ ------------------------------ ------------------------------
?? ????? ???????               لا أتكلم العربية               لا أتكلم العربية

Чтобы увидеть список сопоставлений для арабского языка, используйте

SELECT name, description 
FROM fn_helpcollations() 
WHERE name LIKE 'Arabic%'
53
ответ дан 15 October 2019 в 22:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: