Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
David Hartinger
Vlastník
Avatar
David Hartinger:24.8.2012 13:32

Blížíme se k bodu, kdy bude web relativně odladěný po převodu na MVC architekturu. V dalším kroku bychom rádi přešli na kódování UTF-8.

Jsou zde 3 problémy:

MySQL databáze - lze ji nějak jednoduše převést? Co jsem četl, tak pokud je správně nakódována (což v našem případě je), mělo by stačit jen změnit kódování tabulek. Má s tím někdo zkušenosti? nevím jestli to jde takhle jednoduše nebo se musí třeba převést do binary a až poté do utf.

PHP, JS a další soubory - Víte o něčem, co by je umělo hromadně překódovat, abychom se neuklikali k smrti?

PHP funkce - Jaké jsou problémové funkce? Bude třeba nahradit fce pro manipulace s řetězci těmi s prefixem mb_. Je ještě nějaké úskalí?

Děkuji za odpovědi :)

Odpovědět
24.8.2012 13:32
You are the greatest project you will ever work on.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na David Hartinger
David Hartinger:24.8.2012 14:20

Vypadá to, že MySQL již máme v UTFku :)

K formátu souborů, s BOM nebo bez BOM? Často se nám stávalo, že byl soubor pro PHP nečitelný kvůli nějakým neviditelným znakům. To dělala ta verze s BOM. Kit, poradíš prosím?

Nahoru Odpovědět
24.8.2012 14:20
You are the greatest project you will ever work on.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Hartinger
Kit:24.8.2012 14:27

Formát souborů určitě bez BOM. Dělá to problémy hlavně u includů.

Pro hromadné překódování používám recode nebo také iconv. Umí to i PHP, tak ho k tomu můžeš využít.

Záleží na tom, které funkce s řetězci používáš. Většinou není potřeba měnit nic, protože všechny řetězce bývají v databázi a manipulací se moc nedělá.

Nahoru Odpovědět
24.8.2012 14:27
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Kit
David Hartinger:24.8.2012 14:31

Díky. S těmi funkcemi mám na mysli hlvně věci jako strlen, substr a podobné.

Nahoru Odpovědět
24.8.2012 14:31
You are the greatest project you will ever work on.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Hartinger
Kit:24.8.2012 14:36

Jasně. U těch je náhrada nutná. Jen se jejich použití vyhýbám jak jen to jde.

Nahoru Odpovědět
24.8.2012 14:36
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Kit
David Hartinger:24.8.2012 16:56

Tak máme převedenou databázi i soubory. Nyní se hrabeme ve funkcích.

mb_internal_encoding

Stačí uvést jen jednou v indexu, je to tak? Doufám, že ne v každém souboru.

Nenašel jsem alternativy funkcí implode, explode a str_replace. Ty jsou UTF-8 safe?

Jsem velmi zklamán dokumentací v této oblasti a nečekal bych, že toho o nejpoužívanějším kódování najdu tak málo.

Nahoru Odpovědět
24.8.2012 16:56
You are the greatest project you will ever work on.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Hartinger
Kit:24.8.2012 19:47

Nevím, mb_internal_en­coding() jsem nikdy nepoužil, používám UTF-8 a nikdy mi to nechybělo.

implode(), explode() a str_replace() by měly být UTF-8 safe.

Zřejmě není víc dokumentace zapotřebí.

Nahoru Odpovědět
24.8.2012 19:47
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Kit
David Hartinger:24.8.2012 20:09

Bez mb_internal_en­coding() jsem měl nekorektní výstup mb_substr.

To si nemyslím, našel jsem dost dotazů v různých fórech a chabé odpovědi. Dokonce jsem našel i několik pokusů o vlastní str_replace, protože někdo evidentně nevěděl, že je utf8-safe (tedy pokud je, doufám, že ano). Čekal bych seznam funkcí, co nejsou utf8-safe. Takový jsem však nenašel a patrně ani neexistuje.

Nahoru Odpovědět
24.8.2012 20:09
You are the greatest project you will ever work on.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Hartinger
Kit:24.8.2012 20:12

Aha, funkce mb_* jsem nikdy nepoužil, proto mi mb_internal_en­coding() nikdy nechybělo. Asi pracuji jen s normalizovanými daty.

Nahoru Odpovědět
24.8.2012 20:12
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Kit
David Hartinger:24.8.2012 20:24

To je divné, to jsi nikdy nepracoval s diakritikou? Ono tohle je možná důvod, proč je o tom tak málo materiálů, protože to řeší hlavně ty národy, co mají tu smůlu a mají takhle blbou abecedu. V anglicky mluvících zemích si toho třeba ani nikdo nevšimne.

Nahoru Odpovědět
24.8.2012 20:24
You are the greatest project you will ever work on.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Hartinger
Kit:24.8.2012 20:37

Diakritiku normálně používám, ale nebyl jsem nucen český text parsovat nebo jinak upravovat. Vždy to za mne udělala nějaká hotová funkce tak, že jsem se o to nemusel starat.

Nahoru Odpovědět
24.8.2012 20:37
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 11 zpráv z 11.