sql >> Database >  >> RDS >> Mysql

Tekens ي en ی en het verschil in Perzisch - Mysql

Beste EBAG, We hebben een enkele Arabische blokkeren in Unicode die zowel Arabisch als Perzisch . bevat karakters.

06CC is Perzisch ی en 064A is Arabisch ي

Standaard Windows-toetsenbord gebruikt code page 1256 voor Arabische karakters die 064A . zetten standaard ي voor zowel Perzische als Arabische gebruikers omdat Arabische gebruikers veel meer zijn dan Perzische.

ISIRI maak een standaard toetsenbord ISIRI 9147 en zet zowel Arabisch als Perzisch Yeh erop, maar Perisan ی is de standaardtekens. Perzische gebruikers die een standaard toetsenbord gebruiken, zullen de standaard Perzische ی‍ while the rest of them use arabic gebruikt `.

Zoals je gewoonlijk vertelde, veranderen we tijdens het opslaan van gegevens in de database arabisch ي naar Perzisch ‍ی en als we ervan lezen, gaan we gewoon voor Perzisch, dus alles is waar.

de tweede benadering is om een ​​JavaScript-bestand in een webtoepassing te gebruiken om de gebruikersinvoer te controleren. de meeste Perzische websites gebruiken deze benadering om tekens in de database op te slaan. Bij deze methode hoeft de gebruiker geen toetsenbordindeling voor het Perzische of Arabische toetsenbord te installeren. Hij/zij zette het toetsenbord gewoon op English en dan in JavaScript bestandsontwikkelaar controleren welk teken voor hem gelijk is. Hier je kunt ISIRI 9147 javascript . vinden voor webapplicatie en een Perzische gids om het te gebruiken.

de derde benadering is om een ​​schermtoetsenbord te gebruiken dat net als het vorige werkt met een gebruikersinterface en meestal goed is voor mensen die niet bekend zijn met het Perzische toetsenbord.

De vierde benadering is om beide dialecten te doorzoeken. Zoals u weet wanneer u MySql installeert of SQL Server u kunt de collation . instellen en je hebt ook een optie om dialect (en hoofdlettergevoeligheid) te ondersteunen. als je arabische sortering met dialect inschakelt, kun je voor beide resultaten krijgen en meestal werkt dit prima in sql server Ik test het niet in MySql . Dit is de beste oplossing tot nu toe.

maar als ik jou was, implementeer ik een eenvoudige sql function die nvarchar . krijgen en retourneer nvarchar . dan noem ik het wanneer ik gegevens wilde schrijven. en wanneer je maar wilt lezen, kun je voor de standaard gaan.

Sorry voor de lange staart.



  1. 4 manieren om een ​​getal op te maken zonder decimalen in Oracle

  2. syntaxisfout krijgen bij het maken van een functie

  3. Hoe ATAN() werkt in MariaDB

  4. Waarschuwing:mysqli_query() verwacht dat parameter 1 een mysqli boolean is