Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

stocker l'arabe dans la base de données SQL

Vous devez choisir un classement arabe pour vos colonnes varchar/char ou utiliser 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'لا أتكلم العربية')

Notez les valeurs N avant dans l'instruction d'insertion ci-dessus. Si vous ne le mentionnez pas, le système traitera les valeurs comme Varchar, et non comme NVarchar.

SELECT * FROM #test

Retours

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

Pour voir une liste des classements arabes, utilisez

SELECT name, description 
FROM fn_helpcollations() 
WHERE name LIKE 'Arabic%'