精华内容
下载资源
问答
  • 修改文件名乱码
    2021-12-23 10:59:16

    问题

    Windows系统下非UTF-8编码创建的文件名,在Ubuntu系统下会显示乱码和无效的编码,导致文件在Ubuntu系统下无法直接打开,如果文件较少,可以手工改一下,但是前提是你知道正确的文件名是什么,否则从乱码中推测文件名也不现实,如果文件较多,即使知道正确的文件名,手工修改也是不划算的。

    解决办法

    1. sudo apt-get install convmv
    2. 进入只保存有乱码文件名的文件夹
    3. convmv -f GBK -t UTF-8 --notest -r */

    参考资料

    [1] Ubuntu Linux 下文件名乱码(无效的编码)的快速解决办法

    更多相关内容
  • 修改了jar源代码,解决multipart/form-data上传包含中文文件名乱码问题,覆盖apache-jmeter-4.0\lib\ext目录下ApacheJMeter_http.jar即可。
  • 件名乱码一般是中文导致的,因为ckeditor使用的是uft8编码如果我们页面使用的是gbk或gb2312就有可能出现乱码问题,解决办法只要对上传文件重命名即可,下面是如何修改程序代码的方法
  • 修改乱码文件名

    2021-10-22 00:07:38
    修改乱码文件名 下载了一些东西,发现文件名全都是乱码,好几百张图片也没法一个一个改。 写了一个Java程序,运行一下帮我修改过来。 首先确定两个编码。 一个是确定文件名现在的编码 中文的win10 环境下文件名...

    下载了一些东西,发现文件名全都是乱码,好几百张图片也没法一个一个改。

    写了一个Java程序,运行一下帮我修改过来。

    • 首先确定两个编码。
      • 一个是确定文件名现在的编码
        • 中文的win10 环境下文件名一般都是默认GBK编码
        • 因为文件拷贝过来的时候被系统用GBK的方式错误解码,才会出现乱码的现象
        • 当然,个别人的系统可能不是GBK,比如Linux的是UTF-8,经过修改设置的win10也可以是UTF-8
        • 可以打开命令提示符CMD,输入chcp命令,查看活动代码页编号,936就是GBK,65001就是UTF-8
      • 另一个是确定文件名本来应该是什么编码
        • 乱码最多的可能原文件是UTF-8(看你文件哪里来的,合理判断一下)
        • 比如我下载的就是日文的东西,最可能的编码是Shift_JIS或者windows-31J
    • 根据上方的推测进行测试
      • 复制几个文件名乱码的文件到一个新的空文件夹下
      • 将文件的路径名填入
        • 注意,windows下路径是以一个反斜杠“\”作为分隔符,但是程序中用一个反斜杠可能会将它后边的字符转义,反而让程序无法正确识别路径
        • 可以将反斜杠“\”替换成斜杠“/”,这是Unix系统的路径分隔符,windows是可以兼容识别的
        • 也可以再加一个反斜杠,变成“ \ \”,这样程序识别的时候就会转义出来一个反斜杠,不会误转义其他字符(Markdown格式两个反斜杠会被转义为一个,为了显示清楚我中间加了个空格)
      • 将当前系统文件名的编码填入getBytes()中,比如我填的就是"GBK"
        • String.getBytes(String decode)是获得该字符串在此编码格式下byte数组
      • 将推测出的文件名本来的正确编码填入new String(byte[], decode)的decode处,比如我填的"windows-31J"
        • new String(byte[], decode)使用decode编码将byte[]转换成字符串
      • 运行程序进行测试修改
        • 原文件的本来编码如果推测出错,修改的文件名就还会有乱码的情况
        • 比如我一开始推测的编码其实是Shift_JIS,后来发现仍然有一部分的乱码的情况后来换成Windows-31J才修改成功
    • 找到正确的编码后,将路径修改为想要修改的文件路径,进行批量修改
      • 注意,该路径下的所有文件必须都是一起的,相同编码格式,如果有后放进去的其他文件,这个文件将会被修改成乱码
    • 这个程序的原理以我的例子举例
      • 文件名是gbk编码,该乱码本应该是日文编码Windows-31J,将乱码用使它错误的编码格式获得正确的byte数组,再用正确的编码格式解析出该字符串,再给文件命名
    • 程序
    import java.io.File;
    import java.io.UnsupportedEncodingException;
    
    /**
     * @Description:修改文件名的乱码问题
     * @Author:seirin
     */
    
    public class refilename {
        /*
         * 通过递归得到某一路径下所有的目录及其文件
         */
        static void getNames(String filePath) throws UnsupportedEncodingException {
            File root = new File(filePath);
            File[] files = root.listFiles();
            for (File file : files) {
                if (file.isDirectory()) {
    
                    getNames(file.getAbsolutePath());
    
                    System.out.println(changName(file.getAbsolutePath()) + ":" + file.getAbsolutePath());
                } else {
    
                    System.out.println(changName(file.getAbsolutePath()) + ":" + file.getAbsolutePath());
                }
            }
        }
    
        /*
         * 修改文件名,成功返回true
         */
        public static boolean changName(String path) throws UnsupportedEncodingException {
            File oldfile = new File(path);
            // 获取当前文件名,转换编码得到新的文件名
            String newName = new String(oldfile.getName().getBytes("gbk"), "Windows-31J");
            System.out.println(newName);
            File newfile = new File(oldfile.getParent() + File.separator + newName);
            // 重命名
            return oldfile.renameTo(newfile);
    
        }
    
        public static void main(String[] args) {
    
            try {
                //更改文件的路径
                getNames("E:/game/123");
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
        }
    }
    
    
    展开全文
  • python处理文件名乱码

    2020-12-08 20:19:44
    以前也碰到过不少的文件名GBK乱码问题,曾经用python写过一个脚本解决,但是今天下了个ZIP的DOS游戏合集,却碰到挺多的问题。于是又看了看PYTHON中编码的问题(看了又忘)。我的程序中基本上都是清一色的#coding=utf-8...

    关于乱码的问题,遇到过很多次。尤其是在linux下……要是UTF能一统天下就好了。

    以前也碰到过不少的文件名GBK乱码问题,曾经用python写过一个脚本解决,但是今天下了个ZIP的DOS游戏合集,却碰到挺多的问题。

    于是又看了看PYTHON中编码的问题(看了又忘)。

    我的程序中基本上都是清一色的#coding=utf-8。但是在写入XML的时候,又会遇到UTF的问题。

    >>> u = "你好"

    >>> u

    '\xe4\xbd\xa0\xe5\xa5\xbd'

    >>> i = u"我好"

    >>> i

    u'\u6211\u597d'

    >>> type(i)

    >>> type(u)

    可以看出str和unicode是不一样的

    >>> i.encode('utf8')

    '\xe6\x88\x91\xe5\xa5\xbd'

    >>> print i.encode('utf8')

    我好

    >>> print type(i.encode('utf8'))

    搜到的信息是unicode似乎是字符串在计算机中的表示,跟编码无关。

    我的理解是:在计算机中,那个字就是那个字,不管他是GBK还是UTF得来的;就好像我的脑子里面有只狗(unicode),他长的就是那样的──至于究竟是哪样的,你不是我,所以你不知道。而我如果要把它表示出来,那么我就要用各种方法,比如用GBK的铅笔画法,或者UTF的油画画法,这样,我脑子里那支unicode的狗就变成了存在于纸上(硬盘)上的那只狗。

    而如果某一个人,它只能看懂油画(linux),当它碰到我用铅笔画的狗的时候,那么就产生了乱码。

    这个时候,如果叫一个看得懂铅笔画的人(编码程序),先把那支铅笔画的狗,在脑子里面表示出来,再用UTF油画法把它画出来,这样先前那个人(linux),就可以明白了。

    所以,当我遇到文件名编码错误的时候,就用这种思维方式来解决:

    # 下面的例子中,u是乱码(gbk)

    >>> u

    '\xd3\xa2\xd0\xdb\xb4\xab\xcb\xb54\xd6\xec\xba\xec\xd1\xa9'

    >>> print u

    Ӣ�۴�˵4����ѩ

    # u是铅笔画

    >>> tu = u.decode('gbk')

    >>> tu

    u'\u82f1\u96c4\u4f20\u8bf44\u6731\u7ea2\u96ea'

    # tu已经是脑子里想的那个东西了

    >>> ttu = tu.encode('utf8')

    >>> ttu

    '\xe8\x8b\xb1\xe9\x9b\x84\xe4\xbc\xa0\xe8\xaf\xb44\xe6\x9c\xb1\xe7\xba\xa2\xe9\x9b\xaa'

    >>> print ttu

    英雄传说4朱红雪

    >>> print type(ttu)

    # u = u.decode('gbk').encode('utf8')

    看起来是件很简单的事情啊,可是今天又碰到点小问题

    'gbk' codec can't decode bytes in position xx

    有点不明白,google了一下,发现有先人解决了,不用看英文资料啊,哈哈。

    http://blog.donews.com/maverick/archive/2006/07/19/969198.aspx

    原来是因为原来文件名编码乱的原因。

    问题解决。

    posted on

    2007-10-09 14:39

    AnewR

    阅读(4829)

    评论(0)

    编辑

    收藏

    展开全文
  • ubuntu 文件名乱码

    千次阅读 2021-04-03 19:29:03
    ubuntu 默认不支持 gbk 所以用 gbk 编码写的东西就会乱码, 让 Ubuntu 支持 GBK, 方法如下 第一种方法 打开终端,运行命令 : sudo vim /etc/default/locale 将第一行修改为 : LANG="zh_CN.GBK" 原文件(备份下) 1 ...

    ubuntu 默认不支持 gbk 所以用 gbk 编码写的东西就会乱码, 让 Ubuntu 支持 GBK, 方法如下(第一第二种方法我试了无效)

    在这里插入图片描述
    在这里插入图片描述

    第一种方法

    打开终端,运行命令 :

    sudo vim /etc/default/locale
    

    将第一行修改为 :

    LANG="zh_CN.GBK"
    

    原文件(备份一下)
    在这里插入图片描述

    1 #  File generated by update-locale
      2 LANG="en_US.UTF-8"
      3 LC_NUMERIC="zh_CN.UTF-8"
      4 LC_TIME="zh_CN.UTF-8"
      5 LC_MONETARY="zh_CN.UTF-8"
      6 LC_PAPER="zh_CN.UTF-8"
      7 LC_NAME="zh_CN.UTF-8"
      8 LC_ADDRESS="zh_CN.UTF-8"
      9 LC_TELEPHONE="zh_CN.UTF-8"
     10 LC_MEASUREMENT="zh_CN.UTF-8"
     11 LC_IDENTIFICATION="zh_CN.UTF-8"
     12 LANGUAGE="en"
    

    第二种方法

    修改 /var/lib/locales/supported.d 下面的文件,在文件中添加
    zh_CN.GBK GBK  
    zh_CN.GB2312 GB2312

    进入该路径 :

    cd /var/lib/locales/supported.d
    

    在这里插入图片描述
    su 命令进入 root 用户给这两个文件增加 ’ 写 ’ 的权限
    在这里插入图片描述
    在这里插入图片描述
    exit 命令退出 root 用户

    就可以修改这两个文件的内容了

    打开文件 zh-hans
    在这里插入图片描述
    按 i 键进入编辑模式
    在这里插入图片描述
    按 Esc 键退出编辑模式, 输入 :wq 按回车即保存退出

    sudo dpkg-reconfigure --force locales
    

    然后在输出的结果中会出现  
    zh_CN.GB2312 done  
    zh_CN.GBK done  
    在这里插入图片描述
    Ubuntu 就支持 GBK编码了, 但这只是系统支持了, 有的程序可能还是不支持

    很遗憾, 还是没能解决我的文件名乱码问题

    第三种方法

    终端输入命令安装 convmv :

    sudo apt-get install convmv
    

    再安装 p7zip-full
    ( 我的貌似已经有 p7zip-full 了)
    在这里插入图片描述
    解压zip文件:

    LANG=C 7z x filename.zip -r -o/指定解压到的目标目录
    

    x 表示按照压缩包目录解压
    e 表示文件全部解压在一个目录级下
    -r 表示目录递归
    -o 表示指定目录, 紧接后面没有空格
    ( 注意 : 指定的目录要写绝对路径哦 ! 不知道绝对路径可以在终端里去到目标目录下面, 输入命令 pwd 查看当前所在路径)
    在这里插入图片描述
    此命令表示将 day8资料.zip 压缩包的文件按照压缩包文件原有的目录层级解压到目录 c 下面

    LANG=C 7z x day8资料.zip -r -o/home/hjl/Downloads/c
    

    在这里插入图片描述
    解压后如图 :
    在这里插入图片描述
    再输入命令 : (注意 : 可以将所有文件解压之后再执行这条命令)

    convmv -f gbk -t utf8 -r --notest *
    

    文件名就不乱码了
    在这里插入图片描述
    此命令表示将 day6资料.zip 压缩包的文件全部解压在一个目录级下解压到目录 a 下面

    LANG=C 7z e day6资料.zip -r -o/home/hjl/Downloads/a
    

    在这里插入图片描述
    解压后文件如下 :
    在这里插入图片描述
    然后输入命令 :

    convmv -f gbk -t utf8 -r --notest *
    

    在这里插入图片描述
    再打开文件夹查看, 文件名显示已经正常了
    在这里插入图片描述

    展开全文
  • 中文文件名乱码问题

    2021-05-10 09:56:56
    出自Linux Wiki提示:此文已超过 5 年(1880 天)未更新,如发现...中文文件名乱码产生的原因有二:一是挂载NTFS或FAT文件系统时,编码指定不正确导致乱码(或问号);二是在文件系统中文件名存储的编码不正确,导致乱码...
  • xftp中文文件名乱码

    千次阅读 2022-02-05 00:04:23
    CentOS中python代码生成的文件,保存时用的中文文件名。保存后在xshell中用ll命令正常显示中文文件名,但在xftp中文件名显示乱码,需将xftp的当前会话编码改为utf-8。 参考链接
  • java导出文件名乱码

    千次阅读 2021-03-27 21:24:53
    问题背景:javaWeb项目导出文件名乱码。本地window7调试项目导出文件名正常,线上linux(centos7)环境导出文化名乱码。 依据百度经验做尝试: **1)**使用String newStr = new String(“xxx”.getByte(“字符类型1”)...
  • ubuntu文件名乱码(转载)

    千次阅读 2021-06-06 19:46:52
    zip 文件解压乱码 windows中的zip压缩包放到ubuntu中。如果鼠标右键直接解压,或者unzip xxxx.zip命令解压,这样解压之后文件名字会出现乱码
  • Java读linux文件名乱码的解决办法

    千次阅读 2021-02-12 17:46:45
    Java读linux系统文件文件名乱码的解决办法1,问题描述web应用想通过Java读取linux系统文件显示到web页面上,结果中文文件名出现乱码?问题场景描述:当用户通过浏览器访问tomcat服务器,请求查看某一路径下文件列表...
  • Sftp中文件名乱码

    2022-07-31 12:40:09
    因为语言设置的问题,将Sftp转为Unicode(UTF-8)编码即可。2、在左上角那个星球图形的地方修改语言即可!
  • 从其他网站上下载的库,修改了字符串编码转换的方法,解决中文乱码问题,使用示例可见https://blog.csdn.net/qq_28742901/article/details/116156457
  • linux下 java 创建中文文件名乱码问题

    千次阅读 2021-02-28 12:03:58
    今天项目中遇到通过web上传文件到文件系统时,中文文件名乱码,一步步排查了http通讯过程中的编解码(通过utf-8)都没有发现问题。操作系统的默认字符集也是utf-8。 通过日志打印System.getProperty(“file.encoding”...
  • 360压缩包解压文件名乱码

    千次阅读 2022-04-02 16:50:35
    环境: Win10 专业版 360压缩4.0.0.1280 问题描述: 360压缩包解压文件名乱码 解决方案: 1.更改压缩包语言-简体中文,解决
  • 用 Python 修改下载文件名乱码从互联网下载带有中文名称的文件,下载的文件名中有可能会带有乱码。文件名的乱码一般可以分为两类,一类形如“%E9%82%A3%E8%8B%B1-%E5%BE%81%E6%9C%8D.ape”;另一类形如“é�£è�...
  • 当我们在创建java的项目过程中,有时候会遇到一些棘手的问题,就比如说:在JDkzipEntry压缩中文文件名出现乱码的问题。那么对于这个问题,我们应该怎样来解决呢?今天我们就一起来学习一下它的解决方案吧。希望这篇...
  • JAVA文件下载时乱码有两种情况:例如: 变为 如果还是乱码,参考下面的代码 2、url包含中文乱码,提示找不到文件 ...修改tomcat下的conf/server.xml文件,添加一个属性:URIEncoding,将该属性值设置为UTF-8...
  • 工具包
  • linux下删除文件名乱码文件

    千次阅读 2021-05-14 16:44:54
    linux下通过rm命令来删除文件,但是如果要删除文件名乱码的文件,就不能直接使用rm命令了,因为压根就无法输出文件名来。不过借助find命令可以实现对其删除。在linux下对于每个文件都一个对应的不变的inode号,使用 ...
  • 文件是在WIndows 下创建的,Windows 的文件名中文编码默认为GBK,而Linux中默认文件名编码为UTF8,由于编码不一致所以导致了文件名乱码的问题,解决这个问题需要对文件名进行转码。文件名转码工具convmv没安装的话用yum...
  • Windows下文件名乱码怎么解决?

    千次阅读 2020-11-02 10:09:58
    现象如下: 解决方法: 控制面板—时钟和区域(区域和语言)—管理—更改系统区域设置—选择当前系统区域设置:中文(简体,中国)
  • //对文件名做如下转码,即可得到文件名: FileName=new String(FileName.getBytes("ISO-8859-1"), "UTF-8"); 但结果是中文乱码变成了 “?”,问题并没有得到解决。 随后,修改解决方案 FileName=new String...
  • 标签:乱码linux命令行下中文文件名乱码的解决方法首先查询支持的编码:locale -a如果没有你需要的编码,例如zh_CN.utf8root运行: #dpkg-reconfigure locales选择你需要的编码,用空格选中,可多选。tab选择“OK”,...
  • 由于安装英文版的系统不支持中文,出现中文文件名乱码。下面操作时在centos上安装中文支持:1)先下载并安装两个语言包:fonts-chinese-3.02-12.el5.noarch.rpmfonts-ISO8859-2-75dpi-1.0-17.1.noarch.rpm#rpm -ivh ...
  • 备注:之前也看到有教程写可以把把语言设置为英文(记得重启)再该回去中文(再次重启),这种方法我没试,因为我清楚的记得之前就是勾选了一个什么框(大概就是上面那个Beta)然后导致的文件名乱码(之前是因为用别...
  • 出现的问题:在chrome浏览器中导出的excel文件名没有出现中文乱码的情况,在测试IE浏览器的时候,导出的文件名乱码了。解决方法:原来的代码:try {response.setContentType("application/vnd.ms-excel;charset=UTF-...
  • U盘文件夹名称变为类似如下情形:佞 愳亠?仠或者@?等等不一,还不能删除,删除时提示:无法删除文件,无法读...当有提示修改文件夹为文件名时,输入Y选择是。此时一般问题就会解决了。如果还有问题,将一些重要的文...
  • 文件名是中文的时候,使用secureFX上传,在FX中查看正常,在secureCRT中乱码 修改.ini文件,在secure目录/Data/Settings/Config/Sessions中,default.ini和对应服务器的.ini文件,将 "Filenames Always Use UTF8"=...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 46,959
精华内容 18,783
关键字:

修改文件名乱码