Vlákno názorů k článku
Vývoj PHP 6
5. 12. 2005 11:16
Re: Utf8
Můžete to trochu rozvést? Jaký existuje rychlý algoritmus pro substr z UTF-16, ve kterém může být jeden znak uložen ve 2 nebo 4 bajtech? Napadá mě jedině ukládat si kromě samotného řetězce také tabulku pozic znaků zabírajících 4 bajty (což v PHP pravděpodobně bude), ale totéž by přeci šlo udělat i s UTF-8. str_replace nedělá problém ani v jednom kódování, v UTF-8 naopak bude většinou kvůli menší paměťové náročnosti rychlejší.
Bilbo (neregistrovaný)
5. 12. 2005 15:19
Re: Utf8
str_replace nedela problem? No, porad musim hlidat abych nahodou nenasel zacatek toho retezce k nahrazeni uprostred sekvence bajtu tvoricich jeden znak, takze to bude o neco pomalejsi nez klasicke bytove retezce. U latinky to asi nehrozi ze bych se takhle blbe trefil (i kdyz s retezcem opeprenym diakritikou by to mohlo jit), u cinstiny by uz celkem mohlo.
5. 12. 2005 15:30
Re: Utf8
Připomenu, jak kódování UTF-8 vypadá. Každý znak je buď tvořen jediným bajtem < 128 nebo začíná bajtem >= 192 a pokračuje bajty 128..191. Z toho plyne, že k žádné kolizi dojít nemůže, hlídání, jestli nejsem uprostřed znaku, se děje samo od sebe a v důsledku jde použít normální bajtová operace.
5. 12. 2005 13:52
Re: Utf8
Ale UTF-16 je na tom skoro stejne blbe jako UTF-8, protoze se take musi rozlisovat bytova delka znaku. Jedine reseni je pouziti "dlouhych" znaku na 32 bitu.
Bilbo (neregistrovaný)
5. 12. 2005 15:16
Re: Utf8
Mohli taky pouzit Unicode16 jako java ... sice se tam nevejdou nektery znaky, otazkou ale je ktery vlastne a jak casto je nekdo pouziva. Ale to ani java neresi :O) Ale kdyz uz utf tak tam mohli dat utf-8 ... ma stejny nevyhody jako utf-16 (narocny operace) ale pro jazykyn zalozene na latince zabira znatelne min mista. Jak je to s cinstinou a podobnymi obrazkovymi jakyky tak to uz nevim, ale tipuju ze ve vetsine pouziti bude utf8 uspornejsi.
5. 12. 2005 16:06
Re: Utf8
No, on je to pruser i v Jave, protoze nektere novejsi knihovny plne podporuji UTF-16, coz ale odporuje tomu, ze kazdy znak z retezce je mozne nacist jako (sestnactibitovy) char. Prakticky to moc nevadi, protoze podle http://mindprod.com/jgloss/unicode.html v tech "hornich" castech nic moc duleziteho neni, ale porad se jedna o polovicate reseni, stejne jako tomu je s ASCII+kodovymi strankami pro osmy bit.
Michal Kubeček (neregistrovaný)
5. 12. 2005 22:57
Re: Utf8
UTF-16 je naprosto geniální kódování. Zcela unikátním způsobem totiž sjednocuje většinu nevýhod, které mají jednotlivá unicode kódování: zabírá více místa, je endian dependent, má proměnnou délku znaku… Snad jen skutečnost, že pokrývá celý rozsah Unicode, mu trochu kazí pověst…
Pavel Tišnovský (neregistrovaný)
5. 12. 2005 23:38
Re: Utf8
Ano, velmi pěkně a výstižně jste shrnul vlastnosti UTF-16 do pouhých tří vět :-) - vytesat do kamene. Jedna z věcí, které mě na celém slavném Unicode vadí, je právě těch několik způsobů kódování, které se ještě dosti pletou mezi sebou (a jak jsem psal o několik odpovědí výše, i tvůrci aplikací si mnohdy nejsou jistí, co vlastně implementují). O prohazování bytů podle platforem (a chybách v knihovnách při zpracování BOM) ani nemluvě.
Pro mě to prozatím pro komunikaci s okolním světem vyhrálo dosti pěkně navržené UTF-8, interně (na úrovni jazyka a knihoven) ovšem bojuji s UTF-16.
Pro mě to prozatím pro komunikaci s okolním světem vyhrálo dosti pěkně navržené UTF-8, interně (na úrovni jazyka a knihoven) ovšem bojuji s UTF-16.
Bilbo (neregistrovaný)
6. 12. 2005 4:32
Re: Utf8
No obzvlaste kdyz BOM prileti v pulce stranky, to pak vetsina broweru vychrli par paznaku ... (bohuzel nektere editory to cpou na zacatek kazdeho editovaneho souboru a je jim jedno ze z toho bude include nekde uprostred stranky)
Na svych strankach pouzivam utf-8 (krome tech starych, kde pouzivam to kodovani ve kterem kdysi vznikly), interne pokud mozno taky :o)
Na svych strankach pouzivam utf-8 (krome tech starych, kde pouzivam to kodovani ve kterem kdysi vznikly), interne pokud mozno taky :o)

