» »

ASP, MySQL, UTF8, GoDaddy, šumniki

ASP, MySQL, UTF8, GoDaddy, šumniki

gdolenc ::

100x napisano, pa nobene pametne rešitve nisem uspel najti.

Skratka, imam spletno stran v slo. jeziku. Vse je UTF8 encoded, torej sam txt fajl, potem pa tudi vsi meta tagi določajo utf-8. Stran je v klasičnem ASP, tako da imam nastavljeno tudi Session.CodePage=65001 in tudi Response.Charset = "utf-8".

Kar se tiče baze, uporabljam MySQL. Cela baza in vse tabele so v UTF-8.

Stran hostam pri GoDaddy.

Problem: šumniki oz. samo črka č in Č ne delujeta iz baze, saj se namesto tega prikaže ?. Vso preostalo besedilo, ki je hard-coded v fajlu, se šumniki lepo prikazujejo. Mi je nekdo na stackowerflow predlagal, da uporabim pred zagonom poizvedbe na MySQL SET NAMES UTF8 in potem na sami strani Response.CodePage = 1252. In res, zadeva deluje, sedaj so šumniki iz baze ok, vendar pa ne prikazuje več šumnikov na strani, ki so hard-coded.

Kaka ideja, kako bi tako šumnike na strani kot tiste, ki pridejo iz baze, pravilno prikazal na strani?

Trenutno sem se poslužil ene dost bedne rešitve in sicer, da pri vnosu v bazo vse šumnike menjam s HTML kodami, vendar mi ta rešitev ni všeč, ker je potem problem pri sortiranju in iskanju podatkov v bazi. Iščem torej pravo rešitev.

DeeJay ::

Sicer res nikol nism delal z ASP, sam pri php straneh, je potrebno met 4 stvari.
1. Datoteka more bit shranjena v UTF 8 without BOM
2. MySQL baza, tabele in vsa char, varchar, text polja morjo bit v UTF8 (general, bin, ...)
3. Takoj po povezavi z bazo kličeš query SET NAMES UTF8
4. V HTML head-u more bit nastavljen charset:
Primer za HTML5:

<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
</body>
</html>


To je to. Nič drugega ni potrebno in deluje tako iz baze kot "hardcoded".

ales85 ::

Sicer ne na GoDaddy ampak meni je pri tem pomagalo to, da sem vsakič, ko seja prvič začne poizvedbo v SQL poslal mysql_query("SET NAMES utf8").

gdolenc ::

Ja, tako je tudi meni vedno delovalo, ko sem imel pri kolegu na slovenskem strežniku vse skupaj zloženo. Tudi localhost mi vse dela, brez da bi nastavljal posebej SET NAMES UTF8. Ampak na GoDaddy strežniku pa očitno zadeva ne deluje. Na stackoverflow (http://stackoverflow.com/questions/1826... mi je nekdo predlagal, da nastavim Response.CodePage na 1252 in zadeva potem res pravilno prikaže šumnike. Vendar je pa potem problem pri vnosu, kako iz forme zapisati podatke v bazo, da se bodo pravilno vpisali vsi šumniki, saj se trenutno č spremeni v c, Č pa v C. Zanimivo, da s črkama š in ž ni problemov.

DeeJay ::

Pol more pa sam webserver forsirat nek čuden codepage.
Ker webserver pa uporablja godaddy? Apache? Nginx?

techfreak :) ::

Na lokalnem računalniku ti dela pravilno?

Drugače pa ne škodi pogledati sem: http://whatyearisit.info/ Glede na podatke na tej strani bi rekel da je klasični ASP malenkost obsolete.

Ker webserver pa uporablja godaddy? Apache? Nginx?

Verjetno IIS, glede na to da ima stran v ASPju.


Vredno ogleda ...

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

Šumniki in MySql

Oddelek: Izdelava spletišč
196528 (6065) SPEEEED
»

Kako dobit šumnik iz baze

Oddelek: Izdelava spletišč
82719 (2577) MRB0rYS
»

Prikaz šumnikov z UTF-8 ?

Oddelek: Izdelava spletišč
88991 (8865) Person
»

[mySql] šumniki - večni problem

Oddelek: Izdelava spletišč
84138 (3997) jvolk
»

MySQL in czs

Oddelek: Izdelava spletišč
423501 (2591) krho

Več podobnih tem