java读取linux下文件名乱码

我将windows的文件拷贝到linux下,部署在linux下的java读取文件时,文件名中文乱码。各位大虾们,帮帮忙,在线等。恩,是的,字符编码不一样,我将文件名从UT... 我将windows的文件拷贝到linux下,部署在linux下的java读取文件时,文件名中文乱码。各位大虾们,帮帮忙,在线等。
恩,是的,字符编码不一样,我将文件名从UTF-8转换成GBK,linux认了,如果用windows访问的话,又是乱码了,有没有两个系统都通用的编码吗? O(∩_∩)O哈哈哈~,我终于转成功啦!把方法贴出来给大家分享吧。

在Linux中专门提供了一种工具convmv进行文件名编码的转换,可以将文件名从GBK转换成UTF-8编码,或者从UTF-8转换到GBK。
首先看系统上是否安装了convmv,如果没安装:
yum -y install convmv安装。
下面看convmv的用法:
convmv -f 源编码 -t 新编码 [选项] 文件名常用参数:
-r 递归处理子文件夹
--notest 真正进行操作,请注意在默认情况下是不对文件进行真实操作的,而只是试验。
--list 显示所有支持的编码
--unescap 可以做一下转义,比如把%20变成空格比如我们有一个utf8编码的文件名,转换成GBK编码,命令如下:
convmv -f UTF-8 -t GBK --notest utf8编码的文件名这样转换以后"utf8编码的文件名"会被转换成GBK编码(只是文件名编码的转换,文件内容不会发生变化)。

不过还是谢谢各位!这是我第一次在百度知道里提问呢。
展开
 我来答
小傻

2015-08-12 · 知道合伙人软件行家
小傻
知道合伙人软件行家
采纳数:11567 获赞数:31134
已经做过两个上架的app和两个网页项目.

向TA提问 私信TA
展开全部

Linux下读取文件名乱码可能的原因是:
1.linux系统默认编码不支持中文字符

2.文件名本身是乱码

解决方案是在读取文件名的时候,要进行显式的编码转换如下:

FileInputStream fis = new FileInputStream("fileName");
InputStreamReader isr = new InputStreamReader(fis,"utf-8");
富贵很三良
2010-07-12 · 超过32用户采纳过TA的回答
知道答主
回答量:110
采纳率:0%
帮助的人:67.9万
展开全部
把你代码放上来看看··
这个是编码的问题··不知道你是在做什么操作的时候出现的乱码··
一般程序执行如果不指定编码会用系统默认编码执行··
可能是你原来的程序内在windows下运行指定了GBK或者其他编码··那么移植后要改为UTF-8··
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
原桂花石雨
2020-04-29 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.2万
采纳率:26%
帮助的人:1067万
展开全部
linux挂载分区时要使用合适的字符编码。否则在应用程序层面总是无法正常显示
你可以看看
>man
mount
然后搜索charset
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友4d5bbf046
2010-07-12 · TA获得超过1133个赞
知道小有建树答主
回答量:625
采纳率:0%
帮助的人:691万
展开全部
字符编码不统一,linux的默认编码是UTF8,windows是GBK
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jiangtao9999
2010-07-12 · TA获得超过1.2万个赞
知道大有可为答主
回答量:1.2万
采纳率:44%
帮助的人:8191万
展开全部
Linux 统一 UTF-8 ,如果你的应用环境不是 UTF-8 需要自己转换。
Windows 的输入输出系统自动提供转换功能。

这就是区别……
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式