最近做一個專案需要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()不支持中文的路徑
懇請各路大佬幫助!!!
感激不盡!!!
uj5u.com熱心網友回復:
set names 'gbk';uj5u.com熱心網友回復:
不建議使用中文路徑名SELECT LOAD_FILE(CONCAT('D:/',UNHEX('D6D0'),'.TXT'));D6D0是漢字“中”的GBK編碼
uj5u.com熱心網友回復:
不建議使用中文路徑名SELECT LOAD_FILE(CONCAT('E:/',UNHEX('D6D0'),'.obj'));BDF0是漢字“金”的GBK編碼
剛剛直接把我的測驗例子貼上去了,沒有修改過來
[code=sql][/code]
uj5u.com熱心網友回復:
set names 'gbk';
和
set names 'gb2312';
試過了,沒有用,效果還是跟上面一樣,即:
12.obj正常,金.obj回傳NULL
uj5u.com熱心網友回復:
謝謝大神,膜拜一下
uj5u.com熱心網友回復:
set names 'gbk'; 后 show variables like '%character%' 貼出看一下。uj5u.com熱心網友回復:
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/89473.html
標籤:MySQL
上一篇:用分組聚合函式,發現聚合后被截斷了,請問postgresql有設定group_concat_max_len這樣類似的設定嗎?
