Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] kodowanie
Forum PHP.pl > Forum > PHP
dopelganger
Witam
mam na stronie formularz "dane kontaktowe", gdzie mogą składać zapytanie ofertowe osoby z przeróżnych krajów (np. chińskie, cyrylica itd) i tu jest problem, bo w bazie zapisuje mi niekiedy tzw. "ślaczki" zamiast oryginalnego znaku podanego w formularzu,
Stronę mam kodowaną w utf-8 , w bazie dane te zapisuje w 2-óch polach (dla testów)- gdzie w jednym jest kodowanie utf-8, a w drugim latin1_swedish_ci, niestety w obu wywala mi znaki ,,,

czy jest na to jakiś sposób, jak zapisać to aby nie utracić oryginalnych znaków, myślałem że kodowanie utf-8 na stronie załatwi sprawe, ale okazuje się że nie.
Próbowałem też przed zapisem do bazy konwertować dane:

  1. iconv("iso-8859-2","utf-8",$text);
  2.  
  3. // lub:
  4.  
  5. iconv("utf-8","iso-8859-2",$text);


A może to wina bazy??
Prosze o pomoc.
adbacz
1. Plik HTML (resultat który widzi przeglądarka, czyli kod HTML de facto) musi być kodowany w UTF8.
2. Pliki PHP muszą być kodowane w UTF8 (bez BOM).
3. Baza danych, tabele i kolumny musza mieć utf8_unicode.
4. Używasz PDO? Wykonaj SET NAMES utf8 na początku działania skryptu:
  1. $pdo = new PDO(
  2. 'mysql:host=mysql.example.com;dbname=example_db',
  3. "username",
  4. "password",
  5. array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
Niree
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.