MySQL 4.1 a UTF-8

Téma venovaná lokalizácií Etomite do slovenského a českého jazyka, t.j. Etomite manager a inštalácia.

Moderátori: Moderators, SLT, CLT

rzelnik
Slovak LT
Slovak LT
Príspevky: 21
Dátum registrácie: So Feb 04, 2006 11:25 am

MySQL 4.1 a UTF-8

Príspevok od užívateľa rzelnik » So Feb 04, 2006 12:34 pm

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.

R - stick
Moderator & CLT
Moderator & CLT
Príspevky: 215
Dátum registrácie: Pi Sep 23, 2005 10:59 am
Bydlisko: Vysoké Studnice (u Jihlavy)
Kontaktovať užívateľa:

Príspevok od užívateľa R - stick » So Feb 04, 2006 12:56 pm

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.

rzelnik
Slovak LT
Slovak LT
Príspevky: 21
Dátum registrácie: So Feb 04, 2006 11:25 am

Template sú v poriadku

Príspevok od užívateľa rzelnik » So Feb 04, 2006 1:09 pm

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?

R - stick
Moderator & CLT
Moderator & CLT
Príspevky: 215
Dátum registrácie: Pi Sep 23, 2005 10:59 am
Bydlisko: Vysoké Studnice (u Jihlavy)
Kontaktovať užívateľa:

Príspevok od užívateľa R - stick » Ne Feb 05, 2006 12:42 pm

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.

martin.kuna
Amateur
Amateur
Príspevky: 16
Dátum registrácie: Po Okt 10, 2005 9:51 pm

reseni

Príspevok od užívateľa martin.kuna » Ne Feb 12, 2006 4:17 am

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.

rzelnik
Slovak LT
Slovak LT
Príspevky: 21
Dátum registrácie: So Feb 04, 2006 11:25 am

Re: reseni

Príspevok od užívateľa rzelnik » Ne Feb 12, 2006 11:54 am

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.

Užívateľov profilový obrázok
_rasel^
ETOMITE Admin
ETOMITE Admin
Príspevky: 1122
Dátum registrácie: Ut Sep 20, 2005 1:03 am
Bydlisko: Košice (SR)
Kontaktovať užívateľa:

Príspevok od užívateľa _rasel^ » Ne Apr 16, 2006 12:27 am

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?
..:: Etomite CMS → Rulezzz !.!.!. ::..

rzelnik
Slovak LT
Slovak LT
Príspevky: 21
Dátum registrácie: So Feb 04, 2006 11:25 am

Príspevok od užívateľa rzelnik » Ut Máj 16, 2006 1:02 pm

_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.

rzelnik
Slovak LT
Slovak LT
Príspevky: 21
Dátum registrácie: So Feb 04, 2006 11:25 am

UTF8

Príspevok od užívateľa rzelnik » St Máj 24, 2006 11:46 am

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/

Napísať odpoveď