Autor Zpráva
TomasJ
Profil
Zdravím, mám problém s manuálním čtením diakritiky v DB. Na webu vložím novinku v kódování UTF-8, v PMA mám znakovou sadu utf8_general_ci a porovnávání to samé. Ovšem místo znaků diakritiky se ukazují jiné, podivné znaky. ale při čtení novinky z webu, se na webu vypíše normálně. Jen prostě v DB jsou podivné znaky.
Např.:
z DB čtu: Ä› Å¡ č Å™ ž ý á í é ó ň Å¥
vkládal jsem to z webu, a tam se to při čtení zobrazí správně původní vložené znaky: ě š č ř ž ý á í é ó ň ť
Nevíte jak přečíst obsah v DB i s diakritikou?
xmark
Profil
http://diskuse.jakpsatweb.cz/?action=vthread&forum=9&topic=117425&page=-1#6
TomasJ
Profil
xmark:
Na webu odešlu novinku, text: ě š č ř ž ý á í é ó ň ť
Na webu se v novinkách vypisuje text: ě š č ř ž ý á í é ó ň ť
V databázi je text: Ä› Å¡ č Å™ ž ý á í é ó ň Å¥
Kódování a porovnávání v DB: UTF-8
Kódování stránky: UTF-8
Zkoušel jsem podle tebou postnutého odkazu, pořád to samé
__construct
Profil
TomasJ:
Hneď ako sa pripojíš v skripte k DB potrebuješ nastaviť kódovanie pre aktuálne pripojenie. Netreba 4 dotazy ako píše xmark ale malo by stačiť mysql_set_charset() / mysqli::set_charset
TomasJ
Profil
__construct:
I podle tebe jsem zkoušel, zase jsem neuspěl. To samé jako je v [#3]
TomasJ
Profil
Ukážu kód:
<?php include('settings.php');
$open = mysql_connect($Host, $User, $Pass);
mysql_select_db($DB, $open);
mysql_set_charset("utf-8");
$read = mysql_query("SELECT * FROM news ORDER BY time DESC");
$rows = mysql_num_rows($read);
if($rows){
while($row = mysql_fetch_array($read))
{
  echo'<div class="novelty">
         <div class="title">'.$row['title'].'</div>
         <div class="msg">'.$row['message'].'</div>
         <div class="time">'.$row['time'].'</div>
       </div>';
}
}else{echo '<div class="novelty"><div class="title">Upozornění</div><div class="msg">Žádná novinka zatím není napsána.</div><div class="time">'.Date("d.m. Y - H:i:s").'</div></div>';}
mysql_close($open);
?>
__construct
Profil
TomasJ:
Máš tam chybu - mysql_set_charset('utf8'); // bez pomlčky
TomasJ
Profil
__construct:
Když jsem to měl bez pomlčky, pak ukazovalo špatné na webu i v DB...
Děkuji, šlo to správně, zapomněl jsem přidat do zapisovacího scriptu utf8. Díky vyřešeno.
__construct
Profil
Správne sa to naozaj píše "utf8" (viz. mysql dokumentácia)
Riešenie je tu .. chce to ale trošku angličtiny. Tu je článok o češtine a slovenčine na interval.cz
xmark
Profil
TomasJ:
zapomněl jsem přidat do zapisovacího scriptu
Kdybys měl řádky 2-4 přímo v settings.php, nemohlo by se stát, že to někde zapomeneš.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0