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.
PHP ir MySQL programavimas, SQL užklausos, duomenų bazės, PHP scriptai, pagalba, diskusijos, pamokos ir straipsniai.
You are not logged in. Please login or register.
PHP ir MySQL → MySQL diegimas ir konfigūravimas → 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.
"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
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
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
PHP ir MySQL → MySQL diegimas ir konfigūravimas → Lietuviški duomenys
Powered by PunBB, supported by Informer Technologies, Inc.