» »

Šumniki in MySql

Šumniki in MySql

Kricert ::

Inštaliran imam XAMPP (najnovejše različice php, mysql, apache). Pri zapisu v mysql so šumniki vidni, pri izpisu (php skripta) se namesto č prikaže ?, ali pa tudi namesto vseh šumnikov, odvisno od encodinga. Trenutno deluje le če v mysql zapišem vsak č kot &/#/269/; To ni ustrezna rešitev za moj problem, saj je input možen tudi za uporabnike in mora bit omogočen normalen vnos šumnikov.

Sprobal sem že vse tri možnosti formatiranja (ISO-8859-2, UTF-8, WIN-1250). Igral sem se s php, mysql in apache nastavitvami. Hvaležen bi bil če bi mi lahko nekdo ki mu zadeva deluje navedel kakšen collation uporablja za zbirko, za tabele, kakšen encoding pri izpisu, kako ima nastavljene te stvari.

Sem si pogledal številne forumske teme, sprobal vse po vrsti, ampak problema mi nikakor ne uspe odpravit, kot rečeno sem še najbližje s kodnim prikazom šumnikov pri samem vnosu v zbirko, drugače mi ne glede na encoding prikazuje č kot ?.

Hvala za pomoč!

P.S.: Naj še dodam da sem sprobaval vnašanje v zbirko prek obrazca in da je pri meni pri encodingu ISO-8859-2 prikazalo šumnike v tabeli v kodnem prikazu (č = &/#/269/;), ko pa je vnašal prek obrazca podatke nekdo drug s svojega računalnika je v zbirki prikazalo namesto šumnikov vprašaje.
  • spremenil: Kricert ()

alum ::

Kaj pa če poskusiš šumnike pred vpisovanjem v bazo pretvorit v njihove kode. V bazo tako vedno shranjuješ le njihove kode. Pri tem lahko, če uporabljaš php, uporabiš funkcijo str_replace(...).

Možnost pač.

Kricert ::

Torej če uporabnik prek obrazca pošlje šumnike jih pretvorim v kode preden se vpišejo v tabelo? Se da to res izvesti enostavno samo s str_replace()? Bom sprobal.

alum ::

Se da ja. Funkcija zamenja iskani substring znotraj stringa z novim.

link

Kricert ::

Žal ne deluje... zdej mi je začelo shranjevat čšžje s še bolj čudno reprezentantacijo v tabelo

š = Å¡ ipd.

Ne poštekam čist kje je problem. Ker sem sprobal vse encodinge in vse collatione za tabele in stvari se preprost ne shranjo uredu v zbirko če jih uporabnik vnese prek forma.

Dodano: OK zdej deluje če dam encoding v html/php na windows-1250, ampak to mi ni preveč všeč, sam če bo mogl it tko bo pač mogl it. Raj bi mel pa vse na utf-8 ali vsaj iso-8859-2.

Zgodovina sprememb…

  • spremenil: Kricert ()

krho ::

Predvidevam, da imaš potem mysql 5.0.
No če je to res. NAredi bazo v utf-8.
pred prvim querijem kliči poizvedbo: "SET NAMES utf-8" ? "SET NAMES utf8";
si.Mail odprto-kodni odjemalec elektronske pošte. - http://www.simail.si
Uredite si svojo zbirko filmov, serij in iger - http://xcollect.sf.net

Kricert ::

ah to je zdej super ja, točno to kar sem rabu, če bo še kdo bral in uporabil tole naj povem da sem pri php kodi dodal tole:

mysql_query("SET NAMES utf8");
mysql_query("SET CHARACTER SET utf8");
mysql_query("SET COLLATION_CONNECTION='utf8_general_ci'");

in zdaj lepo zapiše čšž v tabelo in tudi izpis je normalen!

hvala za pomoč, upam da bo sedaj s šumniki vse ok

BTW: celoten encoding imam sedaj UTF-8, tako v html/php kot v mysql

Kricert ::

Sem se prehitro veselil in v vnemi v testnem prikazu imel samo š-je in ž-je, č je pa pač še vedno ? v končnem prikazu...:( napredek je vsaj v tem da se mi šumniki pravilno shranijo v tabelo... bo pa treba kot kaže res uporabit kaj drugega kot UTF-8. win-1250 je očitno še vedno almighy

krho ::

Kricert: iz apache conf zbriši AddDefaultCharacterSet ? AddDefaultCharSet
si.Mail odprto-kodni odjemalec elektronske pošte. - http://www.simail.si
Uredite si svojo zbirko filmov, serij in iger - http://xcollect.sf.net

Kricert ::

Ja vem, to sem že naredu, sej pravm da sem si pogledu kup forum postov preden sem vprašu, drugač pa default charseta sploh ni blo sprva v apache conf, pol sem ga celo dodal čeprav vem da ni uredu, ampak v nobenem primeru ni šlo, zdej ga mam pa na off

Še kakšna ideja? Bi mi lahko morda nekdo ku me delajo stvari, ki jih vnašajo uporabniki prek forma povedal kakšen ma encoding strani, kako ma zastavljano v mysql in še ostale nastavitve ki so morda pomembne za to vprašanje. Mislim, res mori tole, ko se ti delo ustav in se ukvarjaš ss takimi zadevami..

alum ::

Encoding imam nastavljen na iso-8859-1.

V bazo mi po defaultu shranjuje kodo za č, medtem ko v aplikaciji, ko preberem iz baze prikaže črko č. Š in ž mi v bazo shranjuje kot črke.

Poskusi prestavit na ta charset.

alum ::

Pa še to lahko preveriš: link

Kricert ::

Sem znižal ambicije in sem pol vseeno napisal kodo ki vse šumnike ki jih prek obrazca vnesejo uporabniki pretvori v $/#/269/; ipd. Pod tem pogojem mi dela vse v željenem UTF-8 encodingu, nisem pa povsem prepričan če bo to dolgoročna rešitev, ampak morda bo mogla bit. Skratka s str_replace šumnike pretvarjam v kodni zapis in dela prikaz ok, edin v tabelah nimam zapisanih šumnikov. Če ma kdo elegenatnejšo rešitev bom z veseljem preizkusil, ampak dvomim da bi kej drugega delovalo glede na to, da je to praktično edini način, da pri prikazu namesto č-jev ne vidim ?-jev. ISO-8859-1 je bilo pa moje začetno izhodišče, preden sem sploh naletel na te težave in ne vem če bi bilo smiselno zdej to sprobavat, čeprav je res da bi mi ta varianta z zakodiranimi šumniki delovala v vsakem encodingu :P

SPEEEED ::

Bom kar tole temo uporabil. Imam problem z šumniki.

Exportal sem bazo. Že tukaj mi ne prikaže šumnikov ampak ok, sem jih popravil ročno. Shranim v utf8. Importam, označeno imam utf8, ampak mi ne deluje šumnik č. Namesto njega se prikaže ?
Če pogledam tabelo kaže, da je encoding latin1_swedish_ci

Lahko kdo pomaga?

AndrejS ::

Od kdaj pa švedi poznajo šumnike... tabelo nastavi na utf8 ali win1250...

SPEEEED ::

šele zdaj sem opazil.

tabela iz katere izvažam je swedish. Kako celo tabelo spremenim, da mo UTF?

c phpmyadminu pod opracije imam nastavljeno pravilo za razvrščanje znakov: utf8 slovenian

krho ::

Ne moreš in ne smeš! Zadevo je potrebno narediti s mysqldump v konzoli.
si.Mail odprto-kodni odjemalec elektronske pošte. - http://www.simail.si
Uredite si svojo zbirko filmov, serij in iger - http://xcollect.sf.net

SPEEEED ::

Hmm kako se pa to naredi?

Ampak baza katero kopiram sedaj deluje na joomli in so tudi šumniki ok.

TyKee ::

Ker tudi mene mučijo težave z šumniki v MySQL-u, me zanima naslednje.

Spletna stran, ki je trenutno na 'starem' strežniku je narejena v 'windows-1250'. Pravtako se pri povezovanju z phpMyAdminom povežem z izbiro 'Slovenian (win1250)'.
MySQL je bil verzije 4, torej brez 'collate' in podobnih stvari.

Vse je delovalo brez težav (Tudi druge sajte sem vse delal v windows-1250!).

Čas pa je prinesel nov strežnik, kamor sem namestil MySQL v5. V phpMyAdminu sem pri loginu izbral 'Slovenian (utf8)'. Ustvaril sem novo podatkovno bazo, za katero sem izbral 'utf8_slovenian_ci' razvrščanje znakov.
Na starem strežniku sem bazo dump-al s komando: 'mysqldump -a -u USERNAME -p DATABASE > FILENAME.mysql'. Na novem pa po kreiranju baze izvedel komando: 'mysql -u USERNAME -p DATABASE < FILENAME.mysql'. Vse je naredilo odlično, le pri šumnikih se je zalomlo!

Naslednji korak mi je bil, da sem v .html datoteki spremenil iz windows-1250 na utf8. Brez uspeha. Ker ni bilo nič boljše, sem na internetu izbrskal neko zadevo, ki je rekla naj v virtual hostu forceam windows-1250, pravtako naj to nastavim v samem .html fajlu windows-1250. Super, sumniki delajo a ne prikazuje mi Č, č, Đ, đ, Ć in ć.

Aja, pa naj omenim, da sem poizkušal že z SET NAMES utf8 in brez uspeha.

.... huh ker sem se konkretno razpisal, pa če se komu ne bo dalo vsega brat:
Prenašam bazo iz MySQL v4 v MySQL v5, kako pravilno prenest in nastavit vse charset-e in collate, da bo zadeva delovala brezhibno, kar se tiče šumnikov? Zanima me tako za MySQL kot za .html/.php datoteke!!! In v katerem encoding-u je potem pametno delat spletne strani? Ali v utf8 ali še zmeraj v windows-1250!?

PS: Nimam želje po spremembi šumnikov v ASCII kode pri vnašanju in obratno pri branju iz baze! Želim, da bo delovalo tako kot prej, ko sem še bil na MySQL v4 in Windows-1250.

Lep pozdrav,
Deni.

SPEEEED ::

Mi je uspelo uredit.

naredil sem napako, ker sem vse tabele zbrisal. Sedaj sem naredil samo update. Šumnike sem popravil ročno.

Vsak dan se kaj novega naučimo :)


Vredno ogleda ...

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

[php] encoding niza

Oddelek: Izdelava spletišč
173645 (1560) BivšiUser2
»

[XAMPP] Server se polomi ob čšžđć

Oddelek: Izdelava spletišč
91481 (1314) alexa-lol
»

Kako dobit šumnik iz baze

Oddelek: Izdelava spletišč
82711 (2569) MRB0rYS
»

Prikaz šumnikov z UTF-8 ?

Oddelek: Izdelava spletišč
88986 (8860) Person
»

MySQL in czs

Oddelek: Izdelava spletišč
423493 (2583) krho

Več podobnih tem