Strana 1 z 1

MySQL 4.1 a UTF-8

Napísané: So Feb 04, 2006 12:34 pm
od užívateľa rzelnik
Mám otázku na MODx, ale pravdepodobne sa to isté týka aj Etomite.
Podarilo sa niekomu rozchodiť MODx/Etomite na MySQL 4.1 (a vyššie) s kódovaním UTF-8? Ako nastavujem, tak nastavujem, vždy mi to zmrší niektoré slovenské znaky. S ISO-8859-2 to chodí relatívne v pohode, ale radšej by som prešiel na Unicode kvôli viacjazyčnej podpore.

Napísané: So Feb 04, 2006 12:56 pm
od užívateľa R - stick
Mě to na MySQL 4.1 s UTF 8 běhá bez problémů. Jediné co jsem si všiml, tak v CZ lokalizaci pro UTF 8 se mi asi na dvou místech nekorektně zobrazuje jeden znak s diakritikou (asi chyba při překladu) - jinak to nedělá problémy. Zkus se podívat do svých templat, jakou v nich máš nastavenou kódovou stránku.

Template sú v poriadku

Napísané: So Feb 04, 2006 1:09 pm
od užívateľa rzelnik
Do template som si vložil [(etomite_charset)], takže HTML header zobrazuje kódovanie nastavené v System Configuration. Viem totiž, že MySQL 4.1 a vyššie vyžaduje nastavenie kódovania (SET CHARACTER SET utf8), aby vedel, v akom kódovaní má komunikovať s aplikáciou, a mám pocit, že v MODx táto vec nie je ošetrená. Aj keď vo výsledku sa to zobrazuje dobre, do databázy sa ukladá rozsypaný čaj (ktorý sa potom spätne prekladá na čitateľný text). Tým pádom nefunguje vyhľadávanie, zoraďovanie a pod.
Ešte vyskúšam, ako sa to správa v Etomite.

R-stick: Ak Ti to funguje, môžeš mi prosím upresniť nastavenia aplikácie a databázy? Najmä databáza ma zaujíma - aké máš nastavenie COLLATION?

Napísané: Ne Feb 05, 2006 12:42 pm
od užívateľa R - stick
Databázi mám nastavenou od hostingu:

Client charset: DEFAULT
Font charset: DEFAULT_CHARSET
Database charset: utf8
Database collation: utf8_general_ci
verze: 4.1.9_max_log

V Etomite mám nastavenou windows-1250 - jak v setupu, tak v hlavičce template. Funguje mi to bez problému i když si to přehodím do UTF8. Win nastavení používám proto, že mám databázi propojenou přes Access s mými daty a některé věci měním přímo přes něj.

reseni

Napísané: Ne Feb 12, 2006 4:17 am
od užívateľa martin.kuna
to: rzelnik

ahoj,

podarilo se ti to vyresit?
mam uplne stejny problem, nektere znaky se nezobrazuji v utf-8 spravne. konkretne treba č (c s hackem) nebo ď (d s hackem).
v databazi je rozsypany caj.

prosim porad

diky
m.

Re: reseni

Napísané: Ne Feb 12, 2006 11:54 am
od užívateľa rzelnik
martin.kuna napísal:podarilo se ti to vyresit?
zatiaľ nie. používam ISO-8859-2 a MySQL 4.0. to je jediná zostava, v ktorej mi slovenčina funguje bez problémov.

písal som aj do bug reportu MODx, ale zdá sa že nie je dosť ľudí na riešenie tejto chyby. ak by ste niekto na niečo prišli, dajte prosím vedieť do tohto fóra.

Napísané: Ne Apr 16, 2006 12:27 am
od užívateľa _rasel^
2 rzelnik: Na http://www.kchajd.sk pouzivam MySQL - 4.1.18 ktore je v UTF-8 a Etomite 0.6.1 RTM s UTF-8. Nemal som ziadny problem so znakmy ľščťžôä a pod...
Je problem iba na webe, alebo aj v admin prostredi?

Napísané: Ut Máj 16, 2006 1:02 pm
od užívateľa rzelnik
_rasel^ napísal:2 rzelnik: Na http://www.kchajd.sk pouzivam MySQL - 4.1.18 ktore je v UTF-8 a Etomite 0.6.1 RTM s UTF-8. Nemal som ziadny problem so znakmy ľščťžôä a pod...
Je problem iba na webe, alebo aj v admin prostredi?
Ešte raz som si podrobne prešiel celý inštalačný proces a prišiel som na tieto veci:

1. Je dôležité pri vytváraní databázy určiť predvolené porovnávanie (Collation) na utf8_slovak_ci (aby databáza ukladala tabuľky v správnom kódovaní a aby sa texty zoraďovali podľa slovenských pravidiel). Niektoré databázy majú nastavené default binárne porovnávanie, a to sa potom texty ukladajú ako binárne dáta, čo nerobí dobrotu.

2. MySQL ver. 4.1 a vyššia potrebuje získať informáciu, v akom kódovaní prebieha komunikácia medzi aplikáciou a databázou. Toto sa nastavuje príkazom
SET NAMES utf8 (v prípade použitia UTF-8) hneď po nadviazaní spojenia (MySQL_Connect).
Do súboru
manager/includes/extenders/dbapi.mysql.class.inc.php (v MODx)
som teda za riadok

Kód: Vybrať všetko

$this->isConnected = true;
pridal

Kód: Vybrať všetko

mysql_query("SET NAMES utf8");
3. Je treba ešte zmeniť kódovanie stránok na UTF-8 a prepísať kódovanie v hlavičke HTML template.

Po týchto krokoch už kódovanie samotného MODx-u pri vypnutom FCKEditore funguje zdá sa že bez problémov. FCKEditor ale má s diakritikou problémy. Môžete si to vyskúšať aj na demo-stránke
http://www.fckeditor.net/demo/

keď sa pozriete do zdrojového kódu, tak zistíte, že niektoré slovenské znaky sa zamieňajú za entity - napr. š sa zapisuje ako š
to síce pri zobrazení stránky nevadí, ale keďže text s entitami sa takto ukladá aj do databázy, tá potom nezvláda vyhľadávanie a pod.

Možno pri inom editore eko FCKEditor by to mohlo fungovať. Neviem, neskúšal som.

UTF8

Napísané: St Máj 24, 2006 11:46 am
od užívateľa rzelnik
Ako tak sledujem iné projekty, s tou UTF-8 kompatibilitou to vôbec nie je jednoduché. Projekt Joomla kvôli tomu teraz prechádza veľkou prestavbou. Veľa natívnych PHP funkcií na prácu s reťazcami nepodporuje UTF-8 a Joomla to rieši napísaním vlastnej knižnice. Viac info:

http://help.joomla.org/content/view/1641/62/
http://dev.joomla.org/component/option, ... d,33/p,16/