2010-05-21 7 views
20

Comment puis-je insérer des caractères arabes dans la base de données sql? J'ai essayé d'insérer des données arabes dans une table et les caractères arabes dans le script d'insertion ont été insérés comme '??????' dans la table.Comment insérer des caractères arabes dans la base de données sql?

J'ai essayé de coller directement les données dans la table via sql management studio et les caractères arabes ont été insérés avec succès et précision.

J'ai cherché des solutions à ce problème et certains threads ont suggéré de changer le type de données en nvarchar au lieu de varchar. J'ai essayé cela aussi mais sans aucune chance. Comment pouvons-nous insérer des caractères arabes dans la base de données SQL?

+0

Comment savez-vous qu'il n'a pas travail? Peut-être que votre programme de requête ne peut pas imprimer les caractères Unicode. Quel programme montre le "????"? Comment savez-vous qu'il peut afficher Unicode correctement? –

+0

Dans le studio de gestion SQL, lorsque j'interroge la ligne, elle s'affiche sous la forme '????' et la même réflexion dans mon programme. – pavanred

Répondre

40

Pour le terrain pour pouvoir stocker des caractères unicode, vous devez utiliser le type nvarchar (ou d'autres similaires comme ntext, nchar).

Pour insérer les caractères Unicode dans la base de données, vous devez envoyer le texte en tant qu'unicode en utilisant un type de paramètre tel que nvarchar/SqlDbType.NVarChar.

(Pour être complet: si vous créez dynamiquement SQL (contre l'avis commun), vous mettez un N devant une chaîne littérale pour le rendre unicode Par exemple:.. insert into table (name) values (N'Pavan'))

+0

+1 pour l'exemple. Merci Guffa. Il y avait un autre fil qui suggérait de préfixer 'N'. Mais, je n'étais pas tout à fait sûr où exactement le faire. – pavanred

+1

+1 pour votre partie de complétude, très instructif. –

+0

+1 pour 'SqlDbType.NVarChar' –

Questions connexes