utorok, decembra 26, 2006

MythTV a MySQL databáza v UTF8

Po dlhom čase som konečne opravil problém, ktorý ma už dlho otravoval - nefunkčná diakritika v EPG v mojom MythTV systéme. MySQL databáza totiž mala od inštalácie ako "default collation" nastavenú švédštinu. Samozrejme slovenské a české znaky sa neinterpretovali správne.

Bolo nutné vykonať nasledovné kroky:

  1. mať MySQL skompilované s podporou UTF8
  2. súbor /etc/mysql/my.cnf by mal obsahovať niečo takéto:
[mysql]
character-sets-dir=utf8
default-character-set=utf8

[mysqladmin]
character-sets-dir=utf8
default-character-set=utf8

[mysqlcheck]
character-sets-dir=utf8
default-character-set=utf8

[mysqldump]
character-sets-dir=utf8
default-character-set=utf8

[mysqlimport]
character-sets-dir=utf8
default-character-set=utf8

[mysqlshow]
character-sets-dir=utf8
default-character-set=utf8

[myisamchk]
character-sets-dir=utf8

[myisampack]
character-sets-dir=utf8

# use [safe_mysqld] with mysql-3
[mysqld_safe]
err-log = /var/log/mysql-401/mysql.err

# add a section [mysqld-4.1] or [mysqld-5.0] for specific configurations.
[mysqld]
character-set-server = utf8
default-character-set = utf8
  1. potom treba spustiť mysql a zadať príkazy (ten posledný opakovať pre všetky požadované tabuľky):
alter database mythconverg default CHARACTER SET utf8 COLLATE utf8_general_ci;

use mythconverg;

ALTER TABLE program CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
Potom už len znovu naimportovať data, napríklad z nejakého zdroja XMLTV.

Po tomto by EPG v Program Guide malo fungovat v pohode, až na OSD. Font použitý u mňa (v theme Retro-OSD) je Vera.ttf, ktorý asi UTF-8 nepodporuje. Stačí ale font použitý v tejto theme prepísať na nejaký iný, ten nakopírovať do adresára Retro-OSD. Väčšina ostatných OSD themes u mňa má fonty, kde je UTF-8 v pohode, tak som zobral niektorý odtiaľ (zdá sa mi, že to bol DejaVuSans).

Paulie

2 komentáre:

Pingwin povedal(a)...

zdar,
diky za info, narazil jsem na stejny problem ale nikde na netu jsem nemohl najit odpoved.
Taky pouzivam gentoo a mam problem ten ze se mi EPG v nekterych castech Programoveho pruvodce zobrazuje spravne a v jinych castech ne.

Ktere vsechny tabulky budu muset prevezt?
Problematicke znaky jsou hlavne č, ř

Paulie povedal(a)...

Vlastne som pre istotu nastavil vsetky, pretoze TV program je v jednej, nazvy nahranych programov su v dalsej atd...