Tema: Re: kas blogai su web/mysql encodingu?
Autorius: Laimis
Data: 2011-04-15 15:35:26
Dainius rašė:
> query("set name utf8") ?

Nepadės. Jei db duomenys yra cp1257, tai norint, kad tarp serverio ir 
kliento vyktų konversija (cp1257 <-> utf-8), reikėtų:

SET character_set_client = utf-8;
SET character_set_results = utf-8;
SET character_set_connection = cp1257;

Ir tai dar *turbūt* reikės korektiškai/atitinkamai nustatyti duomenų 
bazės (lentelės, stulpelio) koduotę; jos nenurodžius/nenustačius, 
numatytoji reikšmė suieškoma tokia tvarka (iš apačios į viršų):


default (compiled):
   "latin1" (jei nekeičiama)

server:
   character_set_server

database:
   CREATE DATABASE … [CHARACTER SET x]

table:
   CREATE TABLE … [[DEFAULT] CHARACTER SET x]

column:
   CREATE TABLE …
   col_name … [CHARACTER SET x]


Tik tai neišsprendžia problemos, kai dalis (jau įrašytų) duomenų — 
cp1257, o dalis — utf-8. Tektų perkoduoti lentelėje/stulpelyje esančius 
duomenis:

http://dev.mysql.com/doc/refman/5.0/en/alter-table.html
http://dev.mysql.com/doc/refman/5.0/en/charset-conversion.html