J'ai essayé de stocker la chaîne arabe dans la base de données SQL 2008 mais elle a été convertie en "point d'interrogation", pourquoi? et que dois-je faire?
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'لا أتكلم العربية')
SELECT * FROM #test
Résultats
col1 col2 col3
------------------------------ ------------------------------ ------------------------------
?? ????? ??????? لا أتكلم العربية لا أتكلم العربية
Pour voir une liste de collations en arabe, utilisez
SELECT name, description
FROM fn_helpcollations()
WHERE name LIKE 'Arabic%'
Vous pouvez modifier le classement au niveau de la base de données au lieu de changer pour chaque colonne de la base de données:
USE master;
GO
ALTER DATABASE TestDB
COLLATE Arabic_CI_AI;
GO
insérer dans la table (colonne) les valeurs (N'xxx').)
Vous devriez mettre N avant chaîne pour le rendre unicode
assurez-vous que toutes vos tables et colonnes varchar
ont le classement utf8_general_ci