WebHU - Programozási kérdések és válaszok

Hogyan kell átírni a nem latin betűket?

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.

25.07.2013

  • esetleg kaphat egy kis szeretetet a strtr-től. csak egy egyedi térképet kell adnia egyik karakterről a másikra. Lásd például itt: stackoverflow.com/questions/17850603/ 25.07.2013
  • az egyéni térképeket kapja, ami miatt aggódom. Nem a kódolás a probléma. A strtr egyébként nem működne a példámban szereplő többbájtos karaktereknél. 25.07.2013

Válaszok:


1

Nem volt sok szerencsém a iconv használatához. Mindig sikerül egy csomó értesítést dobnia.

A legjobb szerencsém az egyéni átírási táblázat használata volt. Messze nem tökéletes, de legalább úgy fogod érezni, hogy szilárd talajod van.

Nem találtam jó egyetlen forrást az átírási táblázatokhoz. Az, hogy nem ismerem a latin írást, nem segít.

25.07.2013

2

at=masterollow" hasonló – főként a Doctrine 1 kódján alapul, és nem tökéletes: de úgy tűnt, hogy működik az összes tesztadattal, amit rádobtam.

26.07.2013
  • Köszi Richy. Igen, ez egy nagyon egyedi kinézetű útvonal. Nem okoz gondot más karakterkészletek szövegének megtisztítása vagy bármi más, így csak egyetlen táblázatra van szükségem minden megfelelő szabályokkal. Valahol ilyennek kell lennie. 26.07.2013
  • Új anyagok

    A rádiógomb ellenőrzött eseményének használata a jQueryben
    Ebben a cikkben látni fogjuk, hogyan kell dolgozni a jquery választógombbal ellenőrzött eseményeivel. A választógombok HTML gombok, amelyek segítenek kiválasztani egyetlen értéket egy csoportból...

    Körkörös függőségek megoldása terraformban adatforrásokkal – lépésről lépésre
    Mi az a körkörös függőségek Dolgozzunk egy egyszerű eseten, amikor az SQS-sor és az S3-vödör közötti körkörös függőség problémája van egy egymástól függő címkeérték miatt. provider..

    Miért érdemes elkezdeni a kódolást 2023-ban?
    01100011 01101111 01100100 01100101 — beep boop beep boop Világunk folyamatosan fejlődik a technológia körül, és naponta fejlesztenek új technológiákat a valós problémák megoldására. Amint..

    🎙 Random Noise #2  – Örökbefogadás és hit
    az analitika íratlan világának gondozása Szeretné, hogy ezek a frissítések a postaládájába kerüljenek? Iratkozzon fel itt . "Ha önvezető autókat gyártanak, akkor mi miért ne..

    A legrosszabb politika és prediktív modellek májátültetésre jelöltek számára az Egyesült Államokban
    A máj (vagy óangolul lifer) az emberi test legnehezebb belső szervére utal, amely csendesen működik a nap 24 órájában. Mit csinál a máj? 500 feladatot hajt végre a szervezet egészségének..

    5 webhely, amely 2022-ben fejleszti front-end fejlesztői készségeit
    Frontendmentor.io A tényleges projektek létrehozásával a Frontendmentor.io segítséget nyújt a front-end kódolási képességeinek fejlesztésében. A kódolást azután kezdheti meg, hogy..

    Mikor kell használni a Type-t az interfészhez képest a TypeScriptben?
    A TypeScript a JavaScript gépelt szuperkészlete, amely statikus gépelést ad a nyelvhez. Ez megkönnyíti a robusztus és karbantartható kód írását azáltal, hogy a hibákat a fordítási időben..