Bug #37610 character set choice for output file
| Submitted: | 24 Jun 2008 15:06 | Modified: | 26 Jun 2008 12:11 |
|---|---|---|---|
| Reporter: | Susanne Ebrecht | Email Updates: | |
| Status: | Duplicate | Impact on me: | |
| Category: | MySQL Server: Charsets | Severity: | S3 (Non-critical) |
| Version: | 5.0, 5.1, 6.0 | OS: | Any |
| Assigned to: | CPU Architecture: | Any |
[24 Jun 2008 15:06]
Susanne Ebrecht
[24 Jun 2008 15:12]
Susanne Ebrecht
That the file encoding depends on the column character set also is confusing. A user expect that the files will be encoded to the encoding of the file system. Means, when I configured my operating system that it should use UTF8 then I always expect UTF8 files as outfile. If I configured my operating system as ISO system then I expect ISO files. Also and last but not least as user I want to have the choice.
[25 Jun 2008 10:28]
Susanne Ebrecht
We discussed this problem again. In our eyes this is not only a feature request. This is a "wrong result" bug. Usually, character_set_results should work here. Example for CLI: Use MySQL CLI, set your terminal to utf8: SET NAMES UTF8; CREATE DATABASE bug37610 CHARACTER SET UTF8; USE bug37610 CREATE TABLE bug (id serial, t varchar(100)); INSERT INTO bug(t) VALUES ('ä'); SELECT LENGTH(t) FROM bug; Result: 2 SELECT * FROM bug; Result: ä SET NAMES LATIN1; SELECT LENGTH(t) FROM bug; Result: 2 SELECT * FROM bug; Result: ? Switch terminal to ISO-8859-15: SELECT * FROM bug; Result: ä As you can see, it works in CLI. SET NAMES will change values of character_set_result and with this information the result will be converted into the character set that is wished for the result. SELECT * FROM bug INTO OUTFILE 'bug37610test'; $ file var/bug37610/bug37610test var/bug37610/bug37610test: UTF-8 Unicode text Terminal is still ISO: $ less var/bug37610/bug37610test 1 À Switch terminal back to UTF8: $ less var/bug37610/bug37610test 1 ä So the command file told the truth it is encoded in UTF8. The set of character_set_result was ignored here. Another test: $ ./bin/mysql -e "set names latin1; select * from bug;" bug37610 > bug37610test2 $ file bug37610test2 bug37620test2: ISO-8859 text It should doesn't matter if you will get the result on I/O or in CLI or into file. Also it should doesn't matter how you will get the result into the file the character_set_result should work in any case. I mean it should not make a difference here if you say: SELECT ... INTO OUTFILE or make a shell redirection.
[26 Jun 2008 12:11]
Sergei Golubchik
duplicate of Bug#30946
Portions of this website are copyright © 2001, 2002 The PHP Group
Page generated in 0.062 sec. using MySQL 8.4.7-u6-cloud
Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the
respective copyright holders.
It is not reviewed in advance
by Oracle and does not necessarily represent the opinion of
Oracle or any other party.