日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

java获取gbk文件名 linux_Java读取linux系统中文文件名时候乱码,并显示文件不存在...

發布時間:2025/3/13 linux 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java获取gbk文件名 linux_Java读取linux系统中文文件名时候乱码,并显示文件不存在... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

使用ava.io.Filef=newjava.io.File("/home/multiverse/Repository/PMEPGImport")的方式讀取文件,如文件名稱含有中文,則讀取結果文件名稱中文部分亂碼,且顯示文件不存在。我試過設置...

使用ava.io.File f = new java.io.File("/home/multiverse/Repository/PMEPGImport")的方式讀取文件,如文件名稱含有中文,則讀取結果文件名稱中文部分亂碼,且顯示文件不存在。

我試過設置:

System.setProperty("file.encoding","GBK");

System.setProperty("sun.jnu.encoding","GBK");

不起作用;

試過將文件名稱進行如下轉碼:

String s0= new String(S.getBytes("UTF-8"),"GB2312");

String s1= new String(S.getBytes("GB2312"),"UTF-8");

String s2= new String(S.getBytes("ISO-8859-1"),"UTF-8");

String s3= new String(S.getBytes("UTF-8"),"ISO-8859-1");

String s4= new String(S.getBytes("ISO-8859-1"),"GB2312");

String s88= new String(S.getBytes("GBK"),"GB2312");

String s89= new String(S.getBytes("GB2312"),"GBK");

String s5= new String(S.getBytes("GB2312"),"ISO-8859-1");

String s6= new String(S.getBytes("GBK"),"UTF-8");

String s7= new String(S.getBytes("UTF-8"),"GBK");

String s8= new String(S.getBytes("GBK"),"ISO-8859-1");

String s9= new String(S.getBytes("ISO-8859-1"),"GBK");

都不起作用;

試過對tomcat的server.xml進行設置如下:

也不起作用;

還有試著將Linux的默認編碼格式為中文,修改/etc/sysconfig/i18n里的編碼格式,也是不起作用。

我上網問詢,研究了1個多星期,實在是找不出解決辦法,

今天部門老大提醒我從java代碼new java.io.File()過程,或者file.listFiles()的過程,深度刨析其源碼的方式尋找解決辦法,我還沒有做。

問題終于解決了,現在把方案共享一下:

解決此問題分兩步

第一步,保證文件存到Linux磁盤上,文件名的編碼格式是UTF-8。

使用“\\IP”方式訪問Linux服務器,并上傳文件是經過samba協議的,而samba協議默認的編碼格式是“GB2312”,所以每次我們通過“\\IP”方式向linux服務器放文件的時候,文件名存在磁盤上就已經亂碼了。所以要修改samba協議編碼格式。方法是:

修改/etc/samba/smb.conf 文件為以下內容:

dos charset = GB2312

unix charset = UTF-8

display charset = UTF-8

修改完后重起samba服務。

第二步,保證tomcat服務器的編碼格式是UTF-8。

通過在catalina.sh 啟動腳本里加入

export LANG=zh_CN.UTF-8

重啟tomcat就可以了。

展開

總結

以上是生活随笔為你收集整理的java获取gbk文件名 linux_Java读取linux系统中文文件名时候乱码,并显示文件不存在...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。