Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: polskie znaki w utf8 po raz n-ty
Forum PHP.pl > Forum > Bazy danych > MySQL
poorchava
Witam,

mam problem za zapisywaniem polskich znaków. Wszystkie mozliwe opcje charsetów collation itd mam ustawione na utf8 ale ciągle mam problemy. Jak dodaję do kolumny typu varchar ciąg w rodzaju 'łóść' z linii komend to dostaję
  1. mysql> INSERT INTO test2 VALUES ('łóść');
  2. ERROR 1366 (HY000): Incorrect string value: '\x88\xA2\x98\x86' FOR COLUMN 'name' at row 1

a w tabeli nic się nie pojawia. Wszystko co się da mam ustawione na utf8:
  1. mysql> STATUS
  2. --------------
  3. C:\Program Files\MySQL\MySQL Server 5.1\bin\mysql.exe Ver 14.14 Distrib 5.1.49, FOR Win32 (ia32)
  4.  
  5. Connection id: 25
  6. Current DATABASE: kalkulator
  7. Current user: root@localhost
  8. SSL: NOT IN USE
  9. USING delimiter: ;
  10. Server version: 5.1.49-community MySQL Community Server (GPL)
  11. Protocol version: 10
  12. Connection: localhost via TCP/IP
  13. Server characterset: utf8
  14. Db characterset: utf8
  15. Client characterset: utf8
  16. Conn. characterset: utf8
  17. TCP port: 3306
  18. Uptime: 54 min 40 sec
  19.  
  20. Threads: 1 Questions: 295 Slow queries: 0 Opens: 35 FLUSH TABLES: 1 Open TABLES: 7 Queries per second avg: 0.89
  21. --------------
  22.  
  23. mysql> SHOW VARIABLES LIKE 'char%';
  24. +--------------------------+---------------------------------------------------------+
  25. | Variable_name | Value |
  26. +--------------------------+---------------------------------------------------------+
  27. | character_set_client | utf8 |
  28. | character_set_connection | utf8 |
  29. | character_set_database | utf8 |
  30. | character_set_filesystem | BINARY |
  31. | character_set_results | utf8 |
  32. | character_set_server | utf8 |
  33. | character_set_system | utf8 |
  34. | character_sets_dir | C:\Program Files\MySQL\MySQL Server 5.1\share\charsets\ |
  35. +--------------------------+---------------------------------------------------------+
  36. 8 rows IN SET (0.00 sec)


pliki w php mam kodowane w utf-8 bez bom.

Z poziomu skryptu w php rekord da sie dodać do bazy, ale przeglądając ją czy to line command clientem czy query browserem widać same krzaki, natomiast w samym php rekordy odczytują się poprawnie, jeżeli polskie litery sa wprowadzane z poziomu kodu. Jeżeli pochodzą z metody get lub post wprowadzone przez użytkownika, to widać krzaki.

Co mam z tym ścierwem zrobić? Bo juz naprawdę kończa mi się pomysły i siły do tego wszystkiego



maly_swd
a polaczenie ustawiasz na utf8?
daj moze to: SET NAMES utf8
poorchava
teraz objaw jest takie: jak zapisze coś w rodzaju 'żąść' ze skryptu php to ze skryptu php odczytuje się poprawnie a w konsoli są krzaki. Natomiast jak próbuję wstawić ciąg z konsoli, to pojawia mi się błąd
  1. mysql> INSERT INTO test VALUES ('żąść');
  2. ERROR 1366 (HY000): Incorrect string value: '\xA5\xAB\x86' FOR COLUMN 'str' at row 1
  3. mysql>
. Dziwne jest to, że ze skryptu php zapisywane jest i odczytywane wszystko ok, obojetnie czy wpiszę ciąg znaków na twardo w kod, czy też użytkownik go wprowadza.

Wydaje mi się, że konsola i skrypt php sa różnie kodowane, ale nie wiem jak to zmienić.
thek
A to google gryzie? http://msdn.microsoft.com/en-us/library/ms...28VS.85%29.aspx o ile używasz konsoli w windzie smile.gif Dla Linuxa jest jeszcze prościej.
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.