Cher EBAG, Nous avons un seul Arabe bloc en Unicode qui contient à la fois l'arabe et Persan des personnages.
06CC est perse ی
y 064A est arabe ي
Le clavier par défaut de Windows utilise code page 1256
pour les caractères arabes qui mettent 064A
par défaut ي
pour les utilisateurs perses et arabes, car les utilisateurs arabes sont beaucoup plus nombreux que les perses.
ISIRI
fabriquer un clavier standard ISIRI 9147
et mettre à la fois l'arabe et le persan Yeh
sur le sujet mais Perisan ی
est le caractère par défaut. Les utilisateurs de persan qui utilisent un clavier standard mettront ( et utiliseront ) le persan standard. ی while the rest of them use arabic
ي`.
Comme vous l'avez dit, lorsque nous sauvegardons une donnée dans la base de données, nous changeons l'arabe. ي
à la Perse ی
et quand nous le lisons, nous nous contentons de Perse, donc tout est vrai.
La deuxième approche consiste à utiliser un fichier JavaScript dans l'application Web pour contrôler la saisie de l'utilisateur. La plupart des sites Web persans utilisent cette approche pour enregistrer les caractères dans la base de données. Dans cette méthode, l'utilisateur n'a pas besoin d'installer une disposition de clavier pour le clavier persan ou arabe. Il suffit de placer le clavier sur English
et ensuite dans JavaScript
le développeur de fichiers vérifie quel personnage lui convient le mieux. Ici vous pouvez trouver ISIRI 9147 javascript
pour l'application web et un Persian Guid pour l'utiliser.
La troisième approche est d'utiliser un clavier à l'écran qui fonctionne comme le précédent avec une interface utilisateur et qui est généralement bon pour ceux qui ne sont pas familiers avec le clavier persan.
La quatrième approche consiste à chercher dans les deux dialectes. Comme vous le savez, lorsque vous installez MySql
o SQL Server
vous pouvez définir le collation
et vous avez aussi une option pour supporter le dialecte (et la sensibilité à la casse). Si vous activez la collation arabe avec le dialecte, vous pouvez obtenir le résultat pour les deux et généralement cela fonctionne bien dans sql server
Je ne le teste pas dans MySql
. C'est la meilleure solution à ce jour.
mais si j'étais vous, j'implémenterais une simple sql function
qui obtiennent nvarchar
et retourner nvarchar
. puis je l'ai appelé quand je voulais écrire des données. et quand vous voulez lire, vous pouvez choisir le standard.
Désolé pour la longue queue.
0 votes
Ce n'est pas différent de "color" vs "colour" en anglais américain et britannique. Il ne s'agit pas de lettres différentes, mais les deux devraient être équivalents dans les recherches. Vous pouvez chercher une bibliothèque qui peut effectuer des recherches sans tenir compte du dialecte...
1 votes
Peur de répondre quand Question a
15 Votes up
avecBounty of
200` :)3 votes
La solution idéale serait de pousser la fonction de recherche dans un moteur d'indexation comme Lucene, qui serait plus flexible en termes de traitement de ce type de problèmes, et aussi - en fin de compte - plus rapide. Modifier vos données sous-jacentes pour répondre à un besoin de recherche ne semble pas être la bonne solution, mais je ne pense pas que MySQL ait les moyens de vous fournir une solution plus robuste.