Problem sa UTF-8 i slovima č, ć, š, đ, ž

Može li mi netko reći zašto Firefox, Chrome itd. ne prikazuju pravilno ovaj html kod (snimljen u index.html file):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
	<title></title>
</head>

<body>
	<p>Test slova Ž, ž, Ć, ć, Č, č, Š, š, Đ, đ.</p>
</body>
</html>

Kad pokrenem stranicu u FF ili Chromeu dobijem
�, �, ?, ?, ?, ?, �, �, ?, ?.

Fala :krele:

A jel ti html editor posprema dokument u UTF-8 charsetu? Ako ne prilagodi ga!

Doh! Riješeno :smiley:

Zato jer stranica nije stvarno pohranjena u znakovnom skupu UTF-8, već nekom drugom. Otvori je u FF-u i na View -> Character-Encoding probaj mijenjati znakovne skupove. Ili izbaci cijeli taj dio, pa probaj.

Meni je View -> Character-Encoding na UNICODE (UTF-8) i još uvijek mi ispisuje iste znakove kao i njemu. I HTML mi je utf8

pokusaj file u kojem si posao html prebacit u utf8, ne znam koji editor koristis, u notepad++ odes na Encoding → Convert to UTF-8 ili UTF-8 without BOM.

Treba bit jako dosljedan sa tim encodingom, i browser, i html dokument mora imat charset=UTF-8 i editor u kojem pises kod mora spremat file kao utf8.
I to bi trebalo radit sto se tice html file-ova.

Znaci imam phpDesigner 7. Ali u postavkama sam stavio Tipovi enkodiranja: UTF-8. Kada mi je u HTML meta content-type windows-1250 radi sve normalno, ali iz baze nezeli ispisati ć č, a kada stavim utf-8 onda želi ispisati č ć iz baze ali ne želi č ć na stranici.

EDIT; Skinio sam Notepad++. Moj HTML kod je zapravo .php (templejt aplikacije). Stavio sam Convert to UTF 8 without BOM, ali opet isto. � :S

Sve ti mora bit utf-8!

Kad radis bazu isto, charset utf-8, a collation stavi utf8_general_ci.

A kad se spajas na bazu ovako radi:

<span class="syntaxdefault">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxkeyword">class&nbsp;</span><span class="syntaxdefault">database&nbsp;</span><span class="syntaxkeyword">{<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span class="syntaxdefault">$db_host&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxstring">"localhost"</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span class="syntaxdefault">$db_user&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxstring">"root"</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span class="syntaxdefault">$db_pass&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxstring">"db_pass"</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span class="syntaxdefault">$db_name&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxstring">"db_name"</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;</span><span class="syntaxdefault">connect</span><span class="syntaxkeyword">()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$connection&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">mysql_connect</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">db_host</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">db_user</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">db_pass</span><span class="syntaxkeyword">)&nbsp;or&nbsp;die(</span><span class="syntaxdefault">mysql_error</span><span class="syntaxkeyword">());<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">mysql_select_db</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">db_name</span><span class="syntaxkeyword">)&nbsp;or&nbsp;die(</span><span class="syntaxdefault">mysql_error</span><span class="syntaxkeyword">());<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">mysql_set_charset</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"utf8"</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$connection</span><span class="syntaxkeyword">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span class="syntaxdefault"></span>

Primjeti ono: mysql_set_charset(“utf8”, $connection);
To ti je jako vazno. Pogledaj vise na:
http://php.net/manual/en/function.mysql-set-charset.php

Nakon toga bi ti sve trebalo radit, jos jednom, svugdje koristis utf-8, u bazi, u html-u, file spremas kao utf-8, treba bit dosljedan sto se toga tice…

sada samo promjeni te znakove koji su ti se pojavili s č i ć i sve će biti uredu(nakon što si postavio utf without BOM pobriši i napiši ponovno naše znakove)

Radi super. :slight_smile:

rep+