Autor Zpráva
baracudakb
Profil
Které kódování považujete za nejlepší? ISO 8859-2, WINDOWS-1250, nebo UTF-8. Četl jsem zdejší článek, dle něj je zřejmě nejlepší UTF-8, nejsou s ním ale nějaké problémy?

Myslím si, že je nejlepší mít MySQL tabulku ve stejném kódování, takže nejsou nějaké problémy při použití UTF-8 v tabulkách(problémy s řazením(např. ch před h apod.)?

Rád bych slyšel Vaše pro a proti jednotlivých kódování. Zatím osobně používám ISO 8859-2, ale rád bych přešel na UTF-8
yderf
Profil
Na zvolenom kódovaní by triedenie záležať nemalo. Aspoň od verzie 4.1, kde si nastavuješ lokálne nastavenia (teda jazyk, v ktorom zoradzovať)
tiso
Profil
1. Pokiaľ chceš aby web mal lokálnu platnosť - cz, tak použi 8859-2, pokiaľ chceš aby aml platnosť svetovú, tak utf-8
2. S utf-8 súvisia niektoré problémy pri niektorých funkciách v PHP, riešia sa. Ďalšie problémy sú pri ukladaní a výbere z DB - DB ukladá po bytoch, a niektoré znaky sú viacbytové
3. problém z radením je daný zlým nastavením typu radenia
ninja
Profil
tiso:
1. Jaka lokalni platnost? V ISO-8859-2 i UTF-8 jsou ceske znaky. V dnesni dobe je nejlepsi pouzit UTF-8, doby zastaralych systemu a prohlizecu ktere UTF neumely jsou jiz davno pryc.

2. V PHP jsou na porovnavani rezetcu v UTF specialni funkce. Je to trochu nesikovne, pravda. Na druhou stranu na vetsi veci muzes klidne pouzit klasicke funkce, problemu je jen par a jsou popsane.

Vubec nechapu problem s ukladanim ci vyberem dat z DB. O jakem systemu mluvis? SQLLite, POstre ani MySQL 4+ zadny problem s UTF-8 nemaji.

3. Staci nastavit spravny LOCALE a aby nemyl hosting prase.
baracudakb
Profil
Koukam názory se ruzní
yderf
Profil
baracudakb
ani nie, fakt závisí na verzii. pokiaľ máš k dispozícii MySql 4.1 a vyššie (4.0 v pohode vkládanie, výber, nemajú však locale - t.j. č > z atď)

určite odporúčam utf-8
DoubleThink
Profil *
S utf-8 súvisia niektoré problémy pri niektorých funkciách v PHP, riešia sa.
Neřeší, jsou vyřešeny už několik let. Viz sada mb_* funkcí (od PHP6 součástí jádra)

Ďalšie problémy sú pri ukladaní a výbere z DB - DB ukladá po bytoch
Od verze MySQL4.1 nikoliv.

Jediná rozumná volba kódování je dnes UTF-8
tiso
Profil
ninja
1. lokálnu - myslel som pokiaľ robí stránku len pre Čechy.
2. stringové funkcie nie sú jediné funkcie v PHP
DoubleThink
mb_ funkcie - viď. 2, pokiaľ viem tak ešte nie sú všetky funkcie upravené
MySQL - to som nevedel...
DoubleThink
Profil *
stringové funkcie nie sú jediné funkcie v PHP
Bavíme se přece o multibyte řetězcích - jakých jiných funkcí by se to ještě mělo týkat?

pokiaľ viem tak ešte nie sú všetky funkcie upravené
Například?
tiso
Profil
DoubleThink - http://php.vrana.cz/vyvoj-php-v-roce-2006.php
Joker
Profil
baracudakb
Použil bych UTF-8. V případě nutnosti použití nějakých starých technologií, které UTF-8 ještě úplně nezvládají, bych použil kódování podporované těmi technologiemi.
Mezi použitím ISO a Win kódování podle mě dneska není moc velký rozdíl. Možná některé zastaralé Windows aplikace budou umět jen Win a některé zastaralé aplikace založené na Unix/Linux budou naopak umět jen ISO kódování.
DoubleThink
Profil *
DoubleThink - http://php.vrana.cz/vyvoj-php-v-roce-2006.php
Například?
tiso
Profil
DoubleThink - konkrétny príklad nemám, opieral som sa iba o ten článok.
DoubleThink
Profil *
opieral som sa iba o ten článok
Ta informace je trochu zavádějící, 50% existujících předdefinovaných funkcí není v současnosti binary-safe. Při zpracování vícebajtových řetězců můžou dělat chyby.

Jenomže to jsou funkce spíš okrajové, moc se nepoužívají. Mainstream je imho už delší dobu na UTF dobře připraven.
Pokud tedy budu chtít použít nějakou exotiku - třeba imagick_drawannotation(), není problém kódování předem konvertovat na něco snesitelnějšího pomocí iconv().
Toto téma je uzamčeno. Odpověď nelze zaslat.