web-dev-qa-db-fra.com

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

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?

19
kartal

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%'
47
Martin Smith

Tout ce que vous devez faire est de vous assurer que

le column Data type est nvarchar() 

 enter image description here

après cela j'ai inséré l'arabe sans aucun problème

 enter image description here

11
Basheer AL-MOMANI

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
3
A Ghazal

insérer dans la table (colonne) les valeurs (N'xxx').)

Vous devriez mettre N avant chaîne pour le rendre unicode

2
nazim hatipoglu

assurez-vous que toutes vos tables et colonnes varchar ont le classement utf8_general_ci

0
Biskrem Muhammad