Vážený EBAG, máme jedinou arabštinu zablokovat v Unicode který obsahuje arabštinu i perštinu znaky.
06CC je perština ی
a 064A je arabština ي
Výchozí klávesnice systému Windows používá code page 1256
pro arabské znaky, které uvádějí 064A
jako výchozí ي
pro perské i arabské uživatele, protože arabští uživatelé jsou mnohem více než perští.
ISIRI
vytvořit standardní klávesnici ISIRI 9147
a vložte arabštinu i perštinu Yeh
na něm ale Perisan ی
je výchozí znaky. Perští uživatelé, kteří používají standardní klávesnici, vloží (a používají) standardní perštinu ی while the rest of them use arabic
ي`.
Jak jste obvykle řekli, když ukládáme data do databáze, měníme arabské ي
do perštiny ی
a když z toho čteme, jdeme na perštinu, takže všechno je pravda.
druhým přístupem je použití souboru JavaScript ve webové aplikaci pro řízení vstupu uživatele. většina perských webů používá tento přístup k ukládání znaků do databáze. Při této metodě uživatel nemusí instalovat žádné rozložení klávesnice pro perskou nebo arabskou klávesnici. Prostě dal klávesnici na English
a poté v JavaScript
vývojář souboru zkontroluje, který znak je pro něj ekvivalentní. Zde
můžete najít ISIRI 9147 javascript
pro webovou aplikaci a perský průvodce k jejímu použití.
Třetím přístupem je použití klávesnice na obrazovce, která funguje stejně jako předchozí s uživatelským rozhraním a je obvykle vhodná pro ty, kteří neznají perskou klávesnici.
Čtvrtým přístupem je hledání v obou dialektech. Jak víte, když si nainstalujete MySql
nebo SQL Server
můžete nastavit collation
a také máte možnost podporovat dialekt (a rozlišování malých a velkých písmen). pokud povolíte řazení arabštiny s dialektem, můžete získat výsledky pro oba a obvykle to funguje dobře na sql server
Netestuji to v MySql
. Toto je zatím nejlepší řešení.
ale kdybych byl vámi, implementoval bych jednoduchou sql function
které získají nvarchar
a vrátí nvarchar
. pak to volám, když jsem chtěl zapisovat data. a kdykoli si budete chtít číst, můžete si vybrat standardní.
Omlouvám se za dlouhý ocas.