Description:
I tried to verify bug #37724.
I made the following test:
Connection 1:
TERMINAL: UTF8
Open MySQL CLI
create database bug37724latin1 character set latin1;
\u bug37724latin1
create table tlatin1myisam(t varchar(10))engine=myisam;
create table tlatin1innodb(t varchar(10)) engine=innodb;
set names utf8;
show variables like 'char%';
+--------------------------+------------------------------------------------+
| Variable_name | Value |
+--------------------------+------------------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
insert into tlatin1myisam values('€');
insert into tlatin1innodb values('€');
select length(t) from tlatin1myisam;
+-----------+
| length(t) |
+-----------+
| 1 |
+-----------+
select length(t) from tlatin1innodb;
+-----------+
| length(t) |
+-----------+
| 1 |
+-----------+
select * from tlatin1innodb;
+------+
| t |
+------+
| € |
+------+
select * from tlatin1myisam;
+------+
| t |
+------+
| € |
+------+
Connection 2:
Terminal: ISO-8859-15
Open CLI:
\u bug37724latin1
set names latin1;
show variables like 'char%';
+--------------------------+------------------------------------------------+
| Variable_name | Value |
+--------------------------+------------------------------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8
select * from tlatin1innodb;
+------+
| t |
+------+
| |
+------+
select * from tlatin1myisam;
+------+
| t |
+------+
| |
+------+
In my CLI it looks like "nothing" or better like ''. That there is a sign, I just figured out by copy-paste here.
The problem here is that my client encoding can't display the Euro sign.
ISO-8859-15 of course has the Euro sign. But Euro sign in mysql latin1 is 0x80, in iso-8859-15 it's oxA4
This will hit the whole Unix world.
My feature request is: support a proper LATIN9 which is according to ISO-8859-15. You don't have a chance by using Unix/Linux to make a proper Euro handling otherwise.
How to repeat:
see above
Suggested fix:
it's a feature request