53 votes

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 s'est convertie en "point d'interrogation" pourquoi ? et que dois-je faire ?

82voto

Martin Smith Points 174101

Vous devez choisir une collation 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 insert ci-dessus. Si vous ne le mentionnez pas, le système traitera les valeurs comme Varchar, et non comme NVarchar.

 SELECT * FROM #test

Retour

 col1                           col2                           col3
------------------------------ ------------------------------ ------------------------------
?? ????? ???????                                  

Pour voir une liste des classements arabes, utilisez

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

17voto

Basheer AL-MOMANI Points 5565

Tout ce que vous avez à faire est de vous assurer que

le column Data type est nvarchar()

entrez la description de l'image ici

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

entrez la description de l'image ici

8voto

A Ghazal Points 98

Vous pouvez modifier le classement au niveau de la base de données au lieu de le modifier pour chaque colonne de la base de données :

 USE master;
GO
ALTER DATABASE TestDB
COLLATE Arabic_CI_AI;
GO

6voto

nazim hatipoglu Points 94

insérer dans le tableau (colonne) les valeurs ( N 'xxx').)

Vous devez mettre N avant la chaîne pour le rendre unicode

3voto

Pradeepkumar Cb Points 31

Essayez d'utiliser ceci : la colonne Type de données est nvarchar()

 INSERT INTO CompanyMaster values(N'" + txtCompNameAR.Text + "',N'" + txtCompAddressAR.Text + "','" + txtPh.Text + "')

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X