i18n változók

crt képe

Sziasztok.

A multilingual változóknál tapasztaltam egy érdekes problémát. Ha a változó (pl. site_offline_message) tartalmaz "ő" vagy "ű" karaktereket, akkor a beállításakor az adatbázisba bekerül a szöveg, de ezt követően sehol sem jelenik meg az oldalon. Az összes többi ékezet esetén rendben működik.

Eddig a régi 1.0 verziót használtam, frissítettem 2.2-re, valamint a drupal.org-on találtam ezt, de hiába konvertálta át az i18n tábláit utf8-ra, nem működik. A konvertálást követően a változót tartalmazó sort eltávolítottam az i18n_variable táblából, majd újból beállítottam az értékét a webhely karbantartás menüpont alatt. A probéma továbbra is fennáll.

Ha valakinek lenne ötlete, azt megköszönném.

Zoli

crt képe

Válaszolok magamnak. A probléma az i18n táblák karakterkódolása miatt volt. A modul 1.x verziói valamilyen oknál fogva latin1 kódolású táblákat használtak. A frissítés során a táblák és az adatok kódolása nem változott, kézzel csináltam meg a következő módon minden i18n_* táblára:

ALTER TABLE i18n_variable CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

Persze a fenti script is működik, csak figyelmetlen voltam, nem vettem észre, hogy nincs benne mysql_query, csak echo.

Üdv: Zoli

0
0
aries képe

Ez valószínű azért van, mert az adatbázisod alapértelmezett karakterkészlete latin1.

Aries
http://aries.mindworks.hu

0
0
crt képe

Én is erre gondoltam, de:

mysql> SHOW variables WHERE Variable_Name LIKE '%_database' OR Variable_Name LIKE '%_server';
+------------------------+-----------------+
| Variable_name          | Value           |
+------------------------+-----------------+
| character_set_database | utf8            |
| character_set_server   | utf8            |
| collation_database     | utf8_general_ci |
| collation_server       | utf8_general_ci |
+------------------------+-----------------+

Ez egy dedikált szerver, a mysql konfighoz nem lett hozzányúlva a telepítése óta csak tuning célból, ami nem érintette a karakterkódolásokat. Ha lesz egy kis időm megpróbálom egy kis tesztkörnyezetben az eredeti installt reprodulálni a szerveren, hátha sikerül rájönni.

Üdv: Zoli

0
0
aries képe

Olyan jó, hogy ez a MySQL-ben túl van bonyolítva. A NAMES értéke és a connection karakterkódolása (lásd: http://dev.mysql.com/doc/refman/5.0/en/charset-connection.html) micsoda?

0
0
crt képe

A my.cnf-ban nincs külön beállítva a set names csak a default-character-set = utf8. Az adatbázisdump-okban ez szerepel: /*!40101 SET NAMES utf8 */;

Ezen kívül:

# mysqladmin variables -p |grep -i utf

| character_set_client            | utf8                        |
| character_set_connection        | utf8                        |
| character_set_database          | utf8                        |
| character_set_results           | utf8                        |
| character_set_server            | utf8                        |
| character_set_system            | utf8                        |
| collation_connection            | utf8_general_ci             |
| collation_database              | utf8_general_ci             |
| collation_server                | utf8_general_ci             |

Nem találtam sehol a szerverben bármi más kódolásra utaló nyomot. Ennek ellenére a konvertálás előtti dump-okban az i18n_* táblák létrehozásánál: DEFAULT CHARSET=latin1.

Üdv: Zoli

0
0