Az átírással játszom a PHP-ben az iconv használatával. Különösen szeretném normalizálni az ékezetes karaktereket, és romanizálni más szkripteket UTF-8-ról egyszerű ASCII-re.
Míg sok karakter működik, mások (például Ž
->Z
) furcsa eredményeket adnak, vagy hibákat emelnek ki.
Például az E ACUTE é
(U+00E9) ASCII-re ír át egyetlen idézőjellel (U+0027) a e
előtt, mintha azt a diakritikus jelet próbálná ábrázolni, amelytől meg akarok szabadulni.
$utf_8 = "\xC3\xA9"; // <- é
$ascii = iconv( 'UTF-8', 'ASCII//TRANSLIT', $utf_8 );
// returns "'e", not "e"
A nem latin betűk rosszabbak, például a görög szigma Σ
(U+03A3), amelynek latinra kell átírnia a S
-t, a rendszer egyáltalán nem ismeri fel, és hibát jelez:
$utf_8 = "\xCE\xA3"; // <- Σ
$ascii = iconv( 'UTF-8', 'ASCII//TRANSLIT', $utf_8 );
// Raises notice: iconv(): Detected an illegal character in input string
Szinte megbirkózom az elsővel, de hogyan tudom átírni a "Σ"-t "S"-re, és ezt megbízhatóan megtenni más, egyenértékű karakterekkel rendelkező szkriptekben?
Nem bánom, ha saját táblázatokat generálok, ha van egy jó forrás, amely a legtöbb európai nyelvhez működik.
Vegye figyelembe, hogy kipróbáltam különféle leválogató táblázatokat, amelyek hasznosak az ékezetes latin karakterek normalizálására, de nem nem működik a szkriptek közötti átíráshoz.