Topic: Lietuviški duomenys

Serveryje nurodyta koduotė - utf8, bet neleidžia į duomenų bazę įterpti įrašų su lietuviškais rašmenimis. Kada serveris "sėdėjo" unix`e tokių problemų nebuvo, o tik perkėliau į Windows prasidėjo problemos.

Re: Lietuviški duomenys

"serveryje nurodyta koduotė" - nepakankamas pasakymas. Serveryje yra bent keli kintamieji, nusakantys koduotę Serverio default koduotė, sesijos default koduotė, db koduotė, lentelės koduotė, galų gale to lentelės  lauko koduotė turi įtakos.

Pradžiai patarčiau C:\Program Files\MySQL\MySQL Server\my.ini

pažiūrėti ar  nustatyti tokie  kintamieji:

[mysql]
default-character-set=utf8

[mysqld]
default-character-set=utf8

Re: Lietuviški duomenys

Na lyg ir viskas nustatyta teisingai:

character_set_client            | utf8
character_set_connection        | utf8
character_set_database          | utf8
character_set_filesystem        | binary
character_set_results           | utf8
character_set_server            | utf8
character_set_system            | utf8
character_sets_dir              | C:\Program Files\MySQL\MySQL Server 5.0\share\charsets\
collation_connection            | utf8_general_ci
collation_database              | utf8_lithuanian_ci
collation_server                | utf8_lithuanian_ci

4 (edited by simas 2008-08-07 16:31:50)

Re: Lietuviški duomenys

Tada lieka tik aplikacijos problemos... Kokia aplikacija įkėlinėja duomenis? PHP skriptas?  Jis irgi buvo perkeltas iš Linux ant windows? Galbūt ant http serverio konfigūracijoje nurodyta direktyva "AddDefaultCharset latin1" ar pan.? (Buvau ant tokio bajerio pasimovęs vieną kartą). ši direktyva buvo nurodyta apache katalogo conf.d/charset faile, windowsuose gali būti analogiškai.

Kitas iš galimų sprendimo būdų būtų pačiame php skripte iš karto po prisijungimo prie mysql serverio įdėti eilutes:

SET CHARACTER SET 'utf8'
SET NAMES utf8
SET CHARACTER_SET_CLIENT='utf8'
SET CHARACTER_SET_RESULTS='utf8'

turėtų padėti, jei pats php skriptas grybauja