[linux] prevod dat z MySQL do MySQL - diakritika

Ing. Jan ONDREJ jan.ondrej na upjs.sk
Pátek Únor 3 14:09:51 CET 2006


Ahoj,

  nuz tieto veci s diakritikou boli tusim pridane v mysql 4.1,
takze na 4.0 to pojde (ak teda pojde) inak.

  Dolezite su 2 veci:
    1. ako mas nastavene kodovanie DB ako takej
    2. ako mas nastavene kodovanie pri komunikacii s MySQL servrom

To prve mozes zmenit po exporte, resp. pouzit prekodovanie (iconv alebo
recode) na zmenu znakov. Ak ti export ulozi pri vytvarani tabuliek
"DEFAULT CHARSET ...", tak ho mozes odstranit (zrusenim v exporte, co by
mal byt obycajny textovy subor).

To druhe sa nastavuje cez SQL prikaz: SET CHARACTER SET LATIN2.
Mozes skusit experimentovat, kedy ti to zoberie spravne.

Dolezite je aj tzv. collate, ktore ti zabezpecuje pracu s takymi znakmi.
Vyhodou mysql 4.1 je, ze vie spravne triedit podla slovenskych pravidiel.
Dalej vie vyhladavat cez LIKE bez diakritiky, ak mas spravne nastavene
znakove sady ako aj collate (ako sa to prelozi do slovenciny? :).
Napr. SELECT * FROM tabulka WHERE stlpec LIKE 'prvy udaj'
najde aj prislusne data obsahujuce ten isty retazec s diakritikou.

Jednoduchy navod ako to urobit asi neexistuje. Zatial je neprijemne,
ze aj pri samotnej zmene znakovej sady alebo collate pri niektorej tabulke
sa ti moze obsah "posahat". Toto bude dufam vyriesene v niektorej
z novsich verzii mysql.

		SAL

On Fri, Feb 03, 2006 at 02:00:19PM +0100, Lucky62 wrote:
> Zdravím potrebujem previesť dáta z môjho lokálneho MySQL verzie 4.1.14
> na MySQL providera verzie 4.0.26.
> 
> Skúšal som export cez phpMyAdmin verzie 2.6.4-pl1
> 
> Pri exporte som najprv dal voľbu Kompatibilita SQL Exportu na NONE,
> ale to pri importe vyhodilo chybu na DEFAULT CHARSET latin2.
> 
> Potom som skúsil Kompatibilitu MYSQL40 - to sice zbehlo, ale zbabralo to 
> diakritiku.
> Vypadá to tak, že tá diakritika sa zmršila už pri exporte,
> lebo to asi exportuje v UTF-8 (názvy tabuliek, stĺpcov, atď...) ale dáta to 
> ponechá latin2 - neskonvertuje ich.
> 
> Viete niekto rýchlo poradiť ako tie tabuľky korektne dostať k providerovi?
> Prístup k db u providera mám len cez phpMyAdmin, príp PHP.
> 
> Vďaka.
> Ján Koštial.
> 
> _______________________________________________
> https://lists.linux.sk/mailman/listinfo/linux
> Prehladavanie archivu: http://search.lists.linux.sk
> Meta FAQ: http://www.sklug.sk/lists/linux/metafaq.html



Další informace o konferenci linux