Bug #69960 national characters in LOAD DATA LOCAL
Submitted: 8 Aug 2013 8:01 Modified: 4 Jun 2014 16:27
Reporter: Peter Laursen (Basic Quality Contributor) Email Updates:
Status: Verified Impact on me:
None 
Category:MySQL Server: Command-line Clients Severity:S3 (Non-critical)
Version:any OS:Windows
Assigned to: CPU Architecture:Any

[8 Aug 2013 8:01] Peter Laursen
Description:
In this old bug report http://bugs.mysql.com/bug.php?id=43184 the conclusion was wrong as regards LOAD DATA LOCAL INFILE.

Docs were updated to read
"On Windows, MySQL Server supports only directory and file names that are compatible with the current ANSI code pages. 
..
The same limitation applies to directory and file names referred to in SQL statements, such as the data file path name in LOAD DATA INFILE."

However, LOAD DATA LOCAL does not even support non-ASCII characters *INSIDE* current ANSI code page.

How to repeat:
With a 'Western' locale setting execute LOAD DATA LOCAL INFILE with an existing and valid data file named 'æøå.csv' as parameter (or use German umlauts or Spanish ñ etc. in filename)

The error "file not found" is returned. 

Letters 'æøå' definitely belongs to current ANSI code page here as my LOCALE setting is Danish!

Suggested fix:
No idea.

Maybe the CLI looks for a file with utf8-encoding of the characters.  If so it would also be reproducible on 'big endian utf16' systems (Mac etc.). And even worse: there is a small chance that such file actually exists and the statement may then load data from another file than expected.
[4 Jun 2014 16:11] MySQL Verification Team
Thank you for the bug report.

C:\dbs\5.6\bin>mysql -uroot -p
Enter password: ******
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 31
Server version: 5.6.19 MySQL Community Server (GPL)

Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> USE test
Database changed
mysql> CREATE TABLE tb (col varchar(24));
Query OK, 0 rows affected (0.33 sec)

mysql> LOAD DATA INFILE 'c:/temp/ññ.csv' INTO TABLE tb;
ERROR 29 (HY000): File 'c:\temp\' not found (Errcode: 2 - No such file or directory)
mysql> LOAD DATA INFILE 'c:/temp/nn.csv' INTO TABLE tb;
Query OK, 3 rows affected (0.08 sec)
Records: 3  Deleted: 0  Skipped: 0  Warnings: 0