Autor Zpráva
ShadowWhoWalk
Profil *
Dobrý den, potřebuji poradit se zapisováním textu do DB. Při vypsání článku mám místo písmen s diakrytykou otazníky. Jak mam nastavit DB, aby se zapisoval text, jak má?
Keeehi
Profil
Musíš sjednotit kódování. Soubor i databáze by měly být ve stejném kódování. Taky můžeš zkusit nastavit kódování při komunikaci PHP a MySQL:
mysql_query("SET NAMES 'utf8'");

A samozřejmě nezapomenout dát prohlížeči informaci o kódování. Třeba takto:
<?php header('Content-type: text/html; charset=utf-8');?>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
ShadowWhoWalk
Profil *
No já mam všechny soubory přez
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
__construct
Profil
ShadowWhoWalk:
Pozri si miestne DB FAQ.
ShadowWhoWalk
Profil *
No tak jsem změnil kvůli mému kódování stránek kódování DB na cp1250_czech_cs, ale pořád to samé.
__construct
Profil
ShadowWhoWalk:
změnil kvůli mému kódování stránek kódování DB na cp1250_czech_cs
Tým si nezmenil kódovanie, ale porovnávanie (collation). Na začiatku skriptu ktorým sa pripájaš voláš to čo je vo [#4] ?
ShadowWhoWalk
Profil *
No ja ale nechci utf8 to se mi pak na stránkách nezobrazuje už vůbec žádná diakrytyka.
__construct
Profil
ShadowWhoWalk:
No ja ale nechci utf8 to se mi pak na stránkách nezobrazuje už vůbec žádná diakrytyka.
Ešte, že je tam aj poznámka:
mysql_query("set names utf8"); //(utf8 nahraďte za cp1250 pro stránky ve windows-1250 a latin2 pro iso-8859-2)
<mimo-téma>
Spisovne sa píše „diakritika
</mimo-téma>
ShadowWhoWalk
Profil *
Eh faux pas :D
ShadowWhoWalk
Profil *
__construct:
To nefunguje.
<? 
$query = MySQL_Query("INSERT INTO clanky (nazev, autor, datum, clanek, kam) VALUES ('".$nazev."', '".$autor."', '".$datum."', '".$clanek."', '".$kam."')") or die(mysql_error());
 mysql_set_charset("cp1250"); 
 echo "<p><font color=\"green\"><strong>Článek byl úspěšně přidán.</strong></font></p>";
?>
Keeehi
Profil
<?php
mysql_connect('localhost', 'mysql_user', 'mysql_password');
mysql_query("set names cp1250");

// nějaký kód
?>

...
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
...

<?php
$query = MySQL_Query("INSERT INTO clanky (nazev, autor, datum, clanek, kam) VALUES ('$nazev', '$autor', '$datum', '$clanek', '$kam')") or die(mysql_error());
echo "<p><font color=\"green\"><strong>Článek byl úspěšně přidán.</strong></font></p>";
?>

+ mít soubor uložen v příslušném kódování.
__construct
Profil
ShadowWhoWalk:
To nefunguje.
Prečo si poriadne tú jednu vetu v tom FAQ neprečítaš?
ShadowWhoWalk
Profil *
Dobře už jsem to udělal. Teď už mi to nepíše otazníky, ale toto: spoleÄŤenská organizace pracujĂ­cĂ­ s dÄ›tmi...
Keeehi
Profil
ShadowWhoWalk:
Já bych to viděl, že se vám neshoduje ten metatag (popř. header) a uložení souboru. Jste si jistý, že to máte uloženo v windows-1250?
ShadowWhoWalk
Profil *
Jsem si jistý, protože používám pouze windows-1250
perwin
Profil
ShadowWhoWalk:
Tohle mi nedávno také v DB dělalo problémy, ale vyřešil jsem to tak,
že mám stránky ve windows-1250, DB jako UTF8,
při zápisu do db dávám:
mysql_query("SET NAMES 'cp1250'");
, a při výpisu:
'.iconv('UTF-8', 'WINDOWS-1250', $ToCoVypisuju).'
Je to trošku zamotané, ale funguje mi to! :-)

EDIT: Myslím, že ty tam musíš při výpisu jenom dát místo
'.$ToCoVypisuju.'
toto:
'.iconv('UTF-8', 'WINDOWS-1250', $ToCoVypisuju).'
ShadowWhoWalk
Profil *
Eh teď nechápu jak to tam zakomponovat. Zapis to se prosím.
<?
$Vyber=mysql_query("SELECT `id`, `nazev`, `datum`, `autor`, `clanek` FROM `clanky` WHERE id=1") or die(mysql_error());
while ($Vypis = mysql_fetch_array($Vyber)) {
echo "
<h1>".$Vypis['nazev']."</h1>
<div class=\"cara2\"></div>
<p>
 ".$Vypis['clanek']."
";
}
?>
perwin
Profil
ShadowWhoWalk:
Místo ".$Vypis['nazev']." dej ".iconv('UTF-8', 'WINDOWS-1250', $Vypis['nazev'])." a místo ".$Vypis['clanek']." dej ".iconv('UTF-8', 'WINDOWS-1250', $Vypis['clanek']).".
ShadowWhoWalk
Profil *
perwin:
Diky ti! Vše je tím vyřešeno.

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