Zanim ktokolwiek zamknie ten temat proszę o przeczytanie do końca
Otóż z kodowaniem znaków często miałem problemy i zawsze mi się udawało jakoś je rozwiązać. Tym razem jednak nie mogę (być może jest to spowodowane kilkoma godzinami na siłowni). Szukałem na tym forum a także na innych, były różne rozwiązania jednak wszystkie już znałem i żadne z nich nie dało efektu.
Przedstawię problem w kodzie:
mysql> SET names latin2 collate latin2_general_ci;
Query OK, 0 rows affected (0.03 sec)
mysql> SET charset latin2;
Query OK, 0 rows affected (0.02 sec)
mysql> SHOW VARIABLES LIKE 'coll';
Empty SET (0.01 sec)
mysql> SHOW VARIABLES LIKE 'coll%';
+----------------------+-------------------+
| Variable_name | Value |
+----------------------+-------------------+
| collation_connection | latin2_general_ci |
| collation_database | latin2_general_ci |
| collation_server | latin1_swedish_ci |
+----------------------+-------------------+
3 rows IN SET (0.02 sec)
mysql> SHOW VARIABLES LIKE 'char%';
+--------------------------+----------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------+
| character_set_client | latin2 |
| character_set_connection | latin2 |
| character_set_database | latin2 |
| character_set_filesystem | BINARY |
| character_set_results | latin2 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/LOCAL/share/mysql/charsets/ |
+--------------------------+----------------------------------+
8 rows IN SET (0.01 sec)
mysql> DELETE FROM imgallery_img_newsy; Query OK, 3 rows affected (0.05 sec)
mysql> INSERT INTO imgallery_img_newsy VALUES('Ładny utwór żabi');
ERROR 1136 (21S01): COLUMN count doesn't match value count at row 1
mysql> insert into imgallery_img_newsy values(null, '2009-01-01','Ładny utwór ża
bi');
Query OK, 1 row affected (0.01 sec)
mysql> select * from imgallery_img_newsy;
+----+--------------+------------------+
| id | data_dodania | news |
+----+--------------+------------------+
| 14 | 2009-01-01 | ťadny utw˘r ľabi |
+----+--------------+------------------+
1 row in set (0.02 sec)
mysql>
o dziwo dając wartości w postaci hex znaki pokazują się ok.
mysql> INSERT INTO imgallery_img_newsy VALUES(NULL, '2009-01-01',0xA3);
Query OK, 1 row affected (0.01 sec)
mysql> SELECT * FROM imgallery_img_newsy;
+----+--------------+------------------+
| id | data_dodania | news |
+----+--------------+------------------+
| 16 | 2009-01-01 | Ł |
+----+--------------+------------------+
3 rows IN SET (0.03 sec)
Mógłbym zamieniać znaki przed dodaniem do bazy na znaki hex jednak wolę poprostu mieć poprawne kodowaine w bazie danych, jednak czym może być ono spowodowane? Wszystkie bazdy danych, tabele, kolumny mają domyślne kodowanie latin2, sztuczki z kodowaniem cp* też już próbowałem, czym więc może być to spowodowane?
Czekam na odp, pzdr.// EDIT //
TEMAT NIEWAŻNY.
Problem rozwiązany, jednak proszę nie pytać mnie jak to zrobiłem, bo bym musiał się kilka godzin rozpisywać i problem sięgał dalej niż php czy mysql
Ten post edytował pyro 21.01.2009, 23:30:56