Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL] Problemy z kodowaniem, Krzaczki w bazie lub w tabeli
kaziu02
post
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 5.01.2016

Ostrzeżenie: (0%)
-----


Witam,

Tworzę bazę danych klientów. Wszystko wygląda tak: baza danych MySQL, z której są pobierane dane do tabeli znajdującej się na stronie WWW. Chcę teraz ustawić jedno kodowanie, tak aby nie mieć krzaczków w bazie danych po jej eksporcie z phpMyAdmina.

Kierowałem się tymi poradnikami:

http://www.php.pl/Wortal/Artykuly/Pomysly-...e-znaki-a-MySQL
http://www.smf.pl/index.php?topic=9539.0

1.Ustawiłem kodowanie bazy danych oraz tabel (metoda porównywania napisów) na: utf8_unicode_ci

2.Ustawiłem domyślne kodowanie w confingu serwera MySQL (my.cnf) na:

  1. character-set-server=utf8
  2. collation-server=utf8_unicode_ci


3. Ustawiłem kodowanie w meta strony WWW:

  1. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />


4. Dodałem ustawienia regionalne do swojego skryptu PHP:

  1. <?php
  2. //Ustawienie strefy czasowej
  3. date_default_timezone_set('Europe/Warsaw');
  4. //Ustawienie kodowania dla bilbioteki mbstring
  5. mb_internal_encoding('UTF-8');
  6. //zmiana ustawień regionalnych na polski
  7. setlocale(LC_ALL, 'pl_PL.UTF-8','pl.UTF-8','pol.UTF-8','plk.UTF-8','polish.UTF-8','poland.UTF-8');
  8. //domyślne kodowanie dla wyjściowego dokumentu php; pozostaw puste aby wysłać tylko "Content-type: text/html" zgodnie z default_mimetype; jest to kodowanie wysyłane w nagłówku odpowiedzi HTTP
  9. //ini_set('default_charset', 'UTF-8');
  10. //nagłówek definiujący typ treści oraz kodowanie
  11. header('Content-type: text/html; charset=utf-8');


5. Ustawiłem w jakim kodowaniu PHP ma się porozumiewać z MySQL:

  1. $link = mysql_connect("localhost", "****", "****") or die(mysql_error());
  2. mysql_query("SET NAMES utf8");
  3. mysql_query("SET CHARACTER_SET utf8_unicode_ci");
  4. require_once("dbcontroller.php");
  5. $db_handle = new DBController();
  6. $sql = "SELECT * from php_interview_questions";
  7. $faq = $db_handle->runQuery($sql);
  8. ?>


W tym momencie nie mam polskich znaków ani na stronie WWW, ani w bazie danych po eksporcie.
Jeśli nie wykonam punktu 5 to mam polskie znaki na stronie WWW, ale w bazie danych dalej są krzaki.

Gdzie tkwi problem?

Chcę teraz ustawić prawidłowo kodowania zanim dodam kilka tysięcy rekordów...

Ten post edytował kaziu02 5.01.2016, 19:38:21
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 22:05