Back to site
Since 2004, our University project has become the Internet's most widespread web hosting directory. Here we like to talk a lot about web servers, web development, networking and security services. It is, after all, our expertise. To make things better we've launched this science section with the free access to educational resources and important scientific material translated to different languages.

Specijalni karakteri se prikazuju kao znak pitanja unutar crnog dijamanta



Skoro svaki veb programer je naišao na problem skupova znakova i kodiranja karaktera. Joel On Software ( Džoel On softver ) sadrži najsažetiji post na temu Unicode.

Evo u čemu je problem. Vaša veb stranica ima određene znakove koji se ne mogu ispravno prikazati. Umesto tipografskih navoda (“zakrivljeni navodi” umesto oznake za stopu ' i za inč "), "akutno e '(kao u reči résumé), simbol za autorsko pravo Copiright (©), simbol za registrovanje (®), itd, koji su obično preneti iz programa kao što je Microsoft Word, Vaša veb stranica prikazuje simbol "znak pitanja u crnom dijamantu":�

Od najranijih dana na Internetu, mi koristimo HTML entitete da stvorimo ove znakove. HTML entiteti su sekvence za izbegavanje da bi se predstavili specijalni karakteri u oznakama Vaše veb stranice. Na primer, sintaksa

©



se označava kao ©, na veb stranici. Shvatam da jednostavno mogu koristiti ove kodove izbegavanja da bi se specijalni karakteri ispravno prikazali, ali zašto? Šta ako imam stotine stranica sadržaja sa zakrivljenim navodnicima u njima i ja samo želim da budem u mogućnosti da iznesem stranicu bez korišćenja HTML entiteta?

Kada programiram sajtove, pokrenem WAMP Server, koji koristi PHP 5, MySQL 5 i Apache 2 na Windows XP-u. Malo sam zbunjen ovom temom skoro 2 godine I nisam jedini.

Pokušao sam da rešim problem kodiranja karaktera odozgo, počevši od softvera veb servera do donje linije.

Uredio sam Apache httpd.conf fajl sa

AddDefaultCharset UTF-8



Uredio sam svoj PHP.ini fajl sa

default_charset = "utf-8"





... i restartovao Apache.

Takođe sam se uverio da MySQL koristi UTF-8.Ovo takođe uključuje i MySQL bazu podataka.....



MySQL vezu,MySQL tabelu, i MySQL polje gde se moji podaci čuvaju.



Kao što ovde možete videti čak sam otvorio i Firefox i podesio ga da prihvati UTF-8 i primi UTF-8.



I još uvek dobijam nerazumljive znakove. ZAŠTO!?



Koristim Firebug za prikazivanje HTML zaglavlja, i sam potvrđujem da to nije greška u Firefox-u. Vidim kukavički znak � bilo da koristim Firefox 2, Firefox 3, Opera, Safari ili Chrome.

Siguran sam da, tamo negde, postoji guru za kodiranje znakova, koji mi može reći gde grešim. Znam, znam, dovoljno je da uključim iso-8859-1 (Windows Latin), bilo gde u lancu kodiranja, i sve će biti u redu. I zaista, ovo je istina. Izgleda gotovo nedokučivo da sam proverio svaku moguću opciju vezanu za postavljanje karaktera na sadržaj stranice na kojoj pokušavam da radim, i još uvek dobijam � svuda..

Ipak, mislio sam da cela ideja koja se krije iza prebacivanja na UTF-8 je da sprečim samog sebe od brige o svim ovim stvarima. Samo bih voleo da lako sačuvam stranice, kreiram stranice i služim se njima u UTF-8 i da tako svi moji karakteri izgledaju kao da što bi trebalo da izgledaju i da ne moram uopšte da ih izbegavam. Zar to nije poenta?

Nisam ubeđen da sam rešio ovaj problem, ali sam pronašao rešenje. Odlučio sam da isključim rukovanje charset u oba httpd.conf i php.ini, i dodao...

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />



......na šablon moje stranice. Radi, ali ja ipak želim da znam zašto to radi, ili tačnije, zašto kada deklarišemo sve na UTF-8 onda ne radi.

Ažurirano oktobar 2011.

Upravo sam otkrio još jedan problem koji nije lako shvatiti. Ispada da možete dobiti strašne karaktere znak- pitanja-u-dijamantu čak i u UTF-8 kodiranim fajlovima, ako je datoteka napisana sa BOM (byte-order-mark). Imali smo PHP aplikaciju uključujući nekoliko fajlova, od kojih je jednan kodiran sa BOM. Specijalni karakteri kao što su ç i õ lepo su se pokazivali na jednom delu stranice, a na drugim delovima stranice kao �. Uklonili smo BOM na jednom od uključenih fajlova sa NotePad++ na Windows-u i opet je sve u redu.





Published (Last edited): 15-07-2012 , source: http://blog.salientdigital.com/2009/06/06/special-characters-showing-up-as-a-question-mark-inside-of-a-black-diamond/