最近做一个项目需要load一个txt文件,
但是txt文件的路径和名称可能是中文的。比如我需要执行如下的SQL语句:
select load_file('E:\\金.obj');
mysql中看到的结果是NULL,如图:然而,当我执行下面这条语句的时候
select load_file('E:\\12.obj');
结果如图:右键BLOB可以看到12.obj里的内容
12.obj里面的内容显示也是正常的金.obj和12.obj其实是同一个文件,只是名字被我改了一下而已求大佬帮忙看一下,这个load_file()如何才能支持中文的路径?说明一下我的环境配置:
我是win10的系统
MYSQL版本是5.7
执行show variables like '%character%';结果如下:在cmd中执行chcp命令,
C:\Users\ZXC>chcp
活动代码页: 936
系统的编码是gbk
我在MYSQL里试过:
set names 'gbk';

set names 'gb2312';
结果还是跟一开始说的一样实在不知道该怎么办了,
也不知道是不是load_file()不支持中文的路径恳请各路大佬帮助!!!
感激不尽!!!

解决方案 »

  1.   

    set names 'gbk';
      

  2.   

    不建议使用中文路径名
    SELECT LOAD_FILE(CONCAT('D:/',UNHEX('D6D0'),'.TXT'));
    D6D0是汉字“中”的GBK编码
      

  3.   

    不建议使用中文路径名
    SELECT LOAD_FILE(CONCAT('E:/',UNHEX('D6D0'),'.obj'));BDF0是汉字“金”的GBK编码
    刚刚直接把我的测试例子贴上去了,没有修改过来[code=sql][/code]
      

  4.   

    set names 'gbk';

    set names 'gb2312';
    试过了,没有用,效果还是跟上面一样,即:
    12.obj正常,金.obj返回NULL
      

  5.   

    set names 'gbk'; 后 show variables like '%character%' 贴出看一下。