Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: phpMyAdmin kodowanie znaków
Forum PHP.pl > Forum > PHP
umatik
Mam problem z kodowaniem bazy na serwerach nazwa.pl :

General Settings:
- System porównań dla połączenia MySQL : utf8_polish_ci
Baza danych:
- Metoda porównywania napisów : utf8_polish_ci
Tabela:
- Metoda porównywania napisów : utf8_polish_ci

Jak używam phpMyAdmina i przez niego wpisuję polskie znaki - jest OK (ale tylko w phpMyAdminie, na stronie są krzaki), jak korzystam z formularza na mojej stronie to w phpMyAdminie są krzaki, a na stronie jest OK . (Wszystkie pliki php z których korzystam do zapisu i wyświetlenia strony kodowane są utf8, w indexie w meta-tagu jest zadeklarowane kodowanie utf8)


Czy ktoś wie o cho chodzi ?
lukaskolista
Kodowanie polaczenia z baza.
no_face
Sam kodowanie nie rozgryzlem w 100%, ale w tym przypadku pomaga stworzenie panelu (wlasnej strony) do dodawania wpisow do bazy danych. Mi to zawsze pomagalo.
umatik
Do łączenia z bazą korzystam z:

  1. function __construct($bataB) {
  2. $login = $this->badabases[$bataB]["login"];
  3. $pass = $this->badabases[$bataB]["pass"];
  4. $this->conn = mysql_connect("sql.XXX.nazwa.pl:3307","$login","$pass");
  5. $this->db = mysql_select_db("$login",$this->conn);
  6. }
  7. function query($sql){
  8. if ($result = mysql_query($sql,$this->conn)){
  9. if (strtolower(substr($sql,0,6))=="insert") $this->lastId = mysql_insert_id($this->conn);
  10. if (strtolower(substr($sql,0,6)=="select")) $this->allRows = mysql_num_rows($result);
  11. return $result;
  12. } else return false;
  13. }


ale jak dodałem do funkcji query

  1. mysql_query("SET CHARACTER utf8", $this->conn);
  2. mysql_query("SET NAMES utf8", $this->conn);
  3. mysql_query("SET CHARACTER_SET utf8", $this->conn);


to poprawiło sytuację ...

Cały ten problem wynikł jednak przy użyciu strtolower vs polskie ogonki, widzę że poprawienie kodowania bazy i samego połączenia nie rozwiązało tego problemu ...
umatik
mb_strtolower niestety krzaczy stasznie

edit: Zrobiłem "na chama" smile.gif


  1. function toLower($txt){
  2. $letter = array("Ą"=>"ą", "Ś"=>"ś", "Ż"=>"ż", "Ź"=>"ź", "Ć"=>"ć", "Ń"=>"ń", "Ł"=>"ł", "Ó"=>"ó", "Ę"=>"ę", "A" => "a","B" => "b","C" => "c","D" => "d","E" => "e","F" => "f","G" => "g","H" => "h","I"=> "i","J" => "j","K" => "k","L" => "l","M" => "m","N" => "n","O" => "o","P" => "p","R" => "r","S" => "s","T" => "t","U" => "u","W" => "w", "X" => "x", "Y" => "y", "Z" => "z");
  3. $c = strtr($txt, $letter);
  4. return ucwords($c);
  5. }

viking
To znaczy że masz złe kodowanie na stronie.
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.