| Bug #10945 | problem with hungarian characters in latin2 charset | ||
|---|---|---|---|
| Submitted: | 29 May 2005 20:31 | Modified: | 28 Jun 2005 13:39 |
| Reporter: | Attila Kluka | Email Updates: | |
| Status: | Can't repeat | Impact on me: | |
| Category: | MySQL Server | Severity: | S3 (Non-critical) |
| Version: | mysql-server-4.1.11_1 | OS: | FreeBSD (FreeBSD 5.4-RELEASE-p1) |
| Assigned to: | CPU Architecture: | Any | |
[30 May 2005 8:17]
Attila Kluka
compile time option: WITH_CHARSET=latin2 WITH_COLLATION=latin2_hungarian_ci mysql> show global variables like 'c%'; +--------------------------+----------------------------------+ | Variable_name | Value | +--------------------------+----------------------------------+ | character_set_client | latin2 | | character_set_connection | latin2 | | character_set_database | latin2 | | character_set_results | latin2 | | character_set_server | latin2 | | character_set_system | utf8 | | character_sets_dir | /usr/local/share/mysql/charsets/ | | collation_connection | latin2_general_ci | | collation_database | latin2_general_ci | | collation_server | latin2_general_ci | | concurrent_insert | ON | | connect_timeout | 5 | +--------------------------+----------------------------------+ shell: LANG=hu_HU.ISO8859-2 LC_CTYPE="hu_HU.ISO8859-2" LC_COLLATE="hu_HU.ISO8859-2" LC_TIME="hu_HU.ISO8859-2" LC_NUMERIC="hu_HU.ISO8859-2" LC_MONETARY="hu_HU.ISO8859-2" LC_MESSAGES="hu_HU.ISO8859-2" LC_ALL=
[28 Jun 2005 13:39]
Aleksey Kishkin
Hi! the only way I was able to reproduce it - to 'set names latin1' before insertion.
For example session:
mysql> delete from test;
Query OK, 2 rows affected (0.01 sec)
mysql> set names latin1;
Query OK, 0 rows affected (0.00 sec)
mysql> insert into test (test1, test2) VALUES ('ÁRVÍZTŰRŐTÜKÖRFÚRÓGÉP', 'ÁRV
RŐTÜKÖRFÚRÓGÉP');
Query OK, 1 row affected, 1 warning (0.00 sec)
mysql> select * from test;
+----+-----------------------+-----------------------+
| ID | test1 | test2 |
+----+-----------------------+-----------------------+
| 15 | ÁRVÍZTŰRŐTÜKÖRFÚRÓGÉP | ÁRVÍZT?R?TÜKÖRFÚRÓGÉP |
+----+-----------------------+-----------------------+
1 row in set (0.00 sec)
mysql> set names latin2;
Query OK, 0 rows affected (0.00 sec)
mysql> select * from test;
+----+-----------------------+-----------------------+
| ID | test1 | test2 |
+----+-----------------------+-----------------------+
| 15 | ÁRVÍZT?R?TÜKÖRFÚRÓGÉP | ÁRVÍZT?R?TÜKÖRFÚRÓGÉP |
+----+-----------------------+-----------------------+
1 row in set (0.00 sec)
but if I set names 'latin2' before insertion, I see proper results:
mysql> set names latin2;
Query OK, 0 rows affected (0.00 sec)
mysql> insert into test (test1, test2) VALUES ('ÁRVÍZTŰRŐTÜKÖRFÚRÓGÉP', 'ÁRVÍZTŰRŐTÜKÖRFÚRÓGÉP');
Query OK, 1 row affected (0.00 sec)
mysql> select * from test;
+----+-----------------------+-----------------------+
| ID | test1 | test2 |
+----+-----------------------+-----------------------+
| 16 | ÁRVÍZTŰRŐTÜKÖRFÚRÓGÉP | ÁRVÍZTŰRŐTÜKÖRFÚRÓGÉP |
+----+-----------------------+-----------------------+
1 row in set (0.00 sec)

Description: problem with hungarian characters in latin2 charset mysql> select * from test; +----+-----------------------+-----------------------+ | ID | test1 | test2 | +----+-----------------------+-----------------------+ | 1 | árvíztűrőtükörfúrógép | árvízt?r?tükörfúrógép | | 2 | ÁRVÍZTŰRŐTÜKÖRFÚRÓGÉP | ÁRVÍZT?R?TÜKÖRFÚRÓGÉP | +----+-----------------------+-----------------------+ 2 rows in set (0.01 sec) How to repeat: CREATE TABLE test ( ID int NOT NULL AUTO_INCREMENT PRIMARY KEY, test1 varchar(30) CHARSET utf8, test2 varchar(30) CHARSET latin2 ); insert into test (test1, test2) VALUES ('árvíztűrőtükörfúrógép', 'árvíztűrőtükörfúrógép'); insert into test (test1, test2) VALUES ('ÁRVÍZTŰRŐTÜKÖRFÚRÓGÉP', 'ÁRVÍZTŰRŐTÜKÖRFÚRÓGÉP'); select * from test;