» »

[MySQL] Težave s prikazovanjem šumnikov

[MySQL] Težave s prikazovanjem šumnikov

morbo ::

Živijo!

V Javi delam eno internetno stran. Strežnik kjer naj bi stvar laufala uporablja MySQL 4.1, na mojem rač. imam verzijo 5.0.27. Problem je da mi nikjer ne pravilno vrača iz baze č,ć,đ, medtem ko š in ž delata pravilno - namesto šumnikov se pojavi vprašaj. Default charset baze je utf8 in collation utf8_slovenian_ci. Vse .jsp strani imajo encoding nastavljen na utf8. Poizvedba ..WHERE ime='Čuk' vrne tapravo vrstico, le da je č zamenjan s vprašajem. phpMySqlAdmin na netu mi kaže iste nepravilnosti.

Preden iz Statement izdelam ResultSet oz. predem izvedem executeUpdate(), executam "SET NAMES utf8 COLLATE utf8_slovenian_ci;", "SET character_set_server = utf8;" in "SET collation_server = utf8_slovenian_ci;", tako da so vse mysql spremenljivke, ki se tičejo znakov:

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
collation_connection : utf8_slovenian_ci
collation_database : utf8_slovenian_ci
collation_server : utf8_slovenian_ci

...a zadeva kljub temu ne dela. Na netu so vrednosti iste, le character_set_server je latin1.

Poleg tega pri poizkusu INSERT INTO tabela SET ime='ščžćš', mi vrne "Data truncation: Data too long for column 'ime' at row 1", čeprav je column definiran kor VARCHAR(10). To naj bi bil bug, ki naj bi bil v novejših verzijah (5.0.32 +) odpravljen. Ok, na moji mašini lahko zadevo posodobim, ampak kaj (če sploh) lahko naredim da bo stvar delala pravilno na spletnem strežniku, ki uporablja 4.1?

Naj povem še da imam na netu precej omejene pravice (pač zastonjski bednik...:P )

PS.
Obstajala bi ena 'rešitev' - pred vsakim zapisom teksta klicat URLEncoder.encode(string, "utf-8") in med querijem URLDecoder.decode(), ampak to je total češko... :\

snow ::

To delaš v navezi s PHP ali čem podobnim?

Je datoteka v kateri so ti ukazi encodana v utf-8?
Random mutation plus nonrandom cumulative natural selection - Richard Dawkins

morbo ::

Heh, zgleda da sem stvar napol rešil že včeraj, brez da bi vedel... Zadevo pišem v NetBeans-u in, ja, nisem imel nastavljeno kodiranje source fajlov na utf8. Včeraj sem to nastavil + compajlanje v utf8, ampak nisem ponovno zagnal okolja... Danes 'magično' deluje pravilno, AMPAK, le na moji mašini... Na netu je spet vse v vprašajih...:\

Na moji mašini, v navezi z "default-character-set=utf8" in "character_set_server=utf8" vrsticama v my.ini, ni treba več posebej spremenljivk programsko nastavljat (občutek imam da nastavljanje teh spremenljivk med izvajanjem, ne zaleže prav nič). Tudi bug "Data truncation: Data too long for column" je izginil. Na netu so te spremenljivke, razen baze, privzeto nastavljene na latin1 (v prvem postu sem se zmotil) - ročno nastavljanje pred poizvedovanjem ne pomaga - najbrž je keč v temu. Če bi server na netu štartal privzeto z utf8, bi stvar delala pravilno.

Server je v USA in stran imam gor ker je zaenkrat edini zastonjski ki sem ga našel da podpira strani v Javi in ima MySQL... Če kdo pozna še kako (zastonjsko) hostanje z MySQL-om na Tomcat-u (ali kakem drugem, ki šteka Javo), I vud bi grejtful mač... :)


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[php] encoding niza

Oddelek: Izdelava spletišč
173790 (1705) BivšiUser2
»

C# - MySQL - šumniki

Oddelek: Programiranje
52135 (2034) Matthew
»

Šumniki in MySql

Oddelek: Izdelava spletišč
196662 (6199) SPEEEED
»

MySQL in czs

Oddelek: Izdelava spletišč
423601 (2691) krho
»

kako spreminiti vse php fajle in celo bazo v utf-8

Oddelek: Izdelava spletišč
161310 (1090) Senzacionale

Več podobnih tem