精华内容
下载资源
问答
  • windows文件名在linux下乱码
    2020-04-17 11:12:45

    问题

    在Windows上文件名的编码为GBK,而在Linux上文件名的编码为UTF-8。

    所以当在Windows上使用ftp方式从Linux上传下拉时,会导致上传文件名的中文变成了乱码,而下拉时找不到指定文件,

    解决办法:

    1、CentOS下 输入

    yum install convmv
    convmv -f gbk -t utf-8 -r --notest /home/

    如果显示key报错,可以在安装后面加上 --gpgnocheck

    --notest 后面跟的就是转换编码的目录或者文件名

    2、在Windows端的代码端将文件名转为utf-8

    char* GBKToUTF8( const char* chGBK )
    {
    	DWORD dWideBufSize=MultiByteToWideChar(CP_ACP, 0,(LPCSTR)chGBK,-1, NULL, 0);  
    	wchar_t * pWideBuf[124];  
    	wmemset(pWideBuf, 0, dWideBufSize);  
    	MultiByteToWideChar(CP_ACP,0,(LPCSTR)chGBK,-1,pWideBuf,dWideBufSize);
     
    	DWORD dUTF8BufSize=WideCharToMultiByte(CP_UTF8,0(LPCWSTR)pWideBuf,-1,NULL,0,NULL,NULL); 
    	char * pUTF8Buf=[124];  
    	memset(pUTF8Buf, 0, dUTF8BufSize);  
    	WideCharToMultiByte( CP_UTF8,0,(LPCWSTR)pWideBuf,-1,pUTF8Buf,dUTF8BufSize,NULL,NULL);
     
    	free(pWideBuf);
    	return pUTF8Buf;
    }

     

    更多相关内容
  • windows下的文件上传至linux服务器,文件乱码问题 windows下新建立的文本文件大多数为GB2312,IOS-8859-1,还有UTF-8等。


    windows下新建立的文本文件大多数为GB2312,ISO-8859-1,还有UTF-8等。在上传到linux服务器是如果文本文件的字符集与linux服务器的字符集不相符的,会出现字符集乱码。
    为解决这一问题,在linux下,可以在Linux下使用iconv命令来转变文件的字符集。

    1. iconv的基本用法,在linux终端输入:

       iconv --help
       会显示出iconv的帮助信息。
    

    在这里插入图片描述

    2. 查看iconv的版本,在linux终端输入:

       iconv -V 或者iconv --version
       注意,-V是大写的v,代表的version。
    

    3. 查看所有字符集,在linux终端输入:

       iconv -l 或者 iconv --list
    

    4. 基本用法,

      iconv -f GB2312 -t utf-8  a.txt -o b.txt
      -f后面跟的参数"GB2312"指文件原编码格式;
      -t后面跟的参数"utf-8"指要转变的编码格式;
      a.txt指的原文件;
      -o后面跟的参数"b.txt"指将转变的内容输入到b.txt中,b.txt可以为一个不存在的文件。
    

    其中-o也可以使用linux的重定向。

    iconv -f GB2312 -t utf-8  a.txt >> b.txt
    

    5.其他命令

    file filename
    

    查看文件filename的字符编码,一般的windows的字符编码为GB2312或者ISO-8859-1,如果是ISO-8859-1字符,在linux下会显示为GBK编码。
    在这里插入图片描述

    展开全文
  • window系统一般文件名编码为... 那么window上显示正常的文件到linux上的时候,常常会因为中文问题导致乱码,比如文件名乱码和文件内容乱码。 查看linux设置的编码: [root ~]# echo $LANG zh_CN.UTF-8 [root ...

           window系统一般文件名编码为gbk,文件内容编码这个需要通过编辑器查看或者设置,找个editplus文本编辑器就可以处理文本内容编码。

            那么在window上显示正常的文件到linux上的时候,常常会因为中文问题导致乱码,比如文件名乱码和文件内容乱码。

    查看linux设置的编码:

    [root ~]#  echo $LANG
    zh_CN.UTF-8
    [root ~]# locale
    LANG=zh_CN.UTF-8
    LC_CTYPE="zh_CN.UTF-8"
    LC_NUMERIC="zh_CN.UTF-8"
    LC_TIME="zh_CN.UTF-8"
    LC_COLLATE="zh_CN.UTF-8"
    LC_MONETARY="zh_CN.UTF-8"
    LC_MESSAGES="zh_CN.UTF-8"
    LC_PAPER="zh_CN.UTF-8"
    LC_NAME="zh_CN.UTF-8"
    LC_ADDRESS="zh_CN.UTF-8"
    LC_TELEPHONE="zh_CN.UTF-8"
    LC_MEASUREMENT="zh_CN.UTF-8"
    LC_IDENTIFICATION="zh_CN.UTF-8"

    LC_ALL=

    上门是基于centos6.5查询和设置,之前是设置USA.UTF-8,后面把它设置支持中文zh_CN.UTF-8,需要安装支持中文的包

    yum -y groupinstall chinese-support  

    修改和设置编码

    [root ~]# vim /etc/sysconfig/i18n
    LANG="zh_CN.UTF-8"

    [root ~]# source /etc/sysconfig/i18n

    经过上面的设置后,开始基于xftp和xshell做下面的实验。

    xshell在文件--》属性--》终端设置编码,xftp暂时不设置。

    一、linux文件名乱码。

    1、创建测试目录和测试文件,文件名带有中文字符,文件内容带有中文字符。通过xftp上传到linux服务器:

    在xftp里面显示中文一切正常。

    2、在linux下面显示发现文件名乱码。同时用file 文件名查看当前文件

    此时做一个转码操作:

    convmv --notest --nosmart -f gbk -t utf8 -r 文件或者目录

    -f from从什么编码
    -t to改成什么编码
    --nosmart 如果已经是utf-8 忽略
    -r 包含所有子目录

    --notest 不加表示只列出有什么需要转换的,不做实际转换,所以一定要加

    上面步骤已经搞定文件名乱码问题了,下面是通过设置xftp编码对应linux编码。

    3、xftp文件--》属性--》选项,设置为utf-8编码--文件名传输编码。这样显示的文件名就直接是uft-8编码,linux显示就不会是乱码。

    4、通过如上设置后,如果发现压缩包文件在服务器端解压后发现有乱码,那么先在window系统解压,然后整个目录传到服务器上,然后看看传上去的是否还是乱码,通过实践,发现中午可以正常的。

    二、文件内容乱码。

    1、用cat 查看发现内容乱码

    2、iconv -f gbk -t utf8 test测试.txt -o test测试.txt

    经过测试已经把文件乱码内容成功转码,

    同时iconv不做覆盖的时候另外一种写法iconv -f gbk -t utf8 haha.txt > haha.txt.utf8

    这种写法不能覆盖,原文件为空。

     

    3、另外一种就是平时写的sell脚本,在window那边传过来需要转码。

    安装:yum install -y dos2unix

    执行相关命令dos2unix  xxx.sh

     

                 上面两种解决方法基本上解决了window到linux文件名乱码和文件内容问题,后续遇到新的问题再追加进来。

     

    展开全文
  • linux下删除文件名乱码文件

    千次阅读 2021-05-14 16:44:54
    linux下通过rm命令来删除文件,但是如果要删除文件名乱码的文件,就不能直接使用rm命令了,因为压根就无法输出文件名来。不过借助find命令可以实现对其删除。在linux下对于每个文件都一个对应的不变的inode号,使用 ...

    linux下通过rm命令来删除文件,但是如果要删除文件名乱码的文件,就不能直接使用rm命令了,因为压根就无法输出文件名来。不过借助find命令可以实现对其删除。在linux下对于每个文件都一个对应的不变的inode号,使用 ls -li 可以查看到文件的inode号,同时find可以根据inode号来查找,另外find命令中可以执行其他的命令。删除的步骤如下:

    通过ls -li 获取要删除乱码文件名文件的inode号,比如得到的是 123456

    执行删除

    find ./ -inum 123456 -exec rm -rf {} \;

    注意:“{}”后要空一格再加上“\;”。

    Centos下删除文件名乱码文件

    centos下通过rm命令来删除文件,但是如果要删除文件名乱码的文件,就不能直接使用rm命令了,因为压根就无法输出文件名来.不过借助find命令可以实现对其删除.在linux下对于每个文件都一个对应的 ...

    linux下中文文件名乱码解决

    在windows上使用ftp上传文件到Linux上,中文名称在Linux系统中显示为乱码.虽然将Linux的env设置了LANG=en_US.UTF-8,并且本地的Shell客户端编码也设置成UTF- ...

    linux下删除大量小文件

    当目录下文件太多时,用rm删除文件会报错:-bash: /bin/rm: Argument list too long提示文件数目太多.解决的办法是使用如下命令:ls | xargs -n 10 rm ...

    linux 下按照文件名模糊查找文件

    fnmatch int fnmatch(const char *pattern, const char *string, int flags); 参数说明 FNM_NOESCAPE 如果这个标志设置了 ...

    linux 下删除乱码文件-乾颐堂

    在linux下删除文件,遇到特殊字符是一件非常头疼的事情. 1. 如果文件名带 ‘-’ 或者‘--’这样的字符 删除办法为:rm -- 文件名 如文件名为:-pythontab.tgz 如果用普通方法 ...

    linux下删除大量文件提示参数过长解决办法

    linux下删除大量文件提示参数过长解决办法:在当前目录下rm -rf * 在linux中删除大量文件时,直接用rm会出现:-bash: /bin/rm: 参数列表过长的错误. 这时可以用find命令 ...

    恢复Linux下被误删除的文件(笔记)

    恢复Linux下被误删除的文件 [root@xuegod63 ~]# mount /dev/cdrom /mnt/ 分一个区:sda4  查找:extundelete 分一个区:sda4  [root ...

    Linux中删除特殊名称文件的多种方式

    今日分享:我们在肉体的疾病方面花了不少钱,精神的病害方面却没有花什么,现在已经到了时候,我们应该有不平凡的学校.-- 前言 我们都知道,在linux删除一个文件可以使用rm命令 ...

    linux下为目录和文件设置权限

    摘:linux下为目录和文件设置权限 分类: Linux2012-05-09 03:18 7456人阅读 评论(1) 收藏 举报 linuxwordpressweb数据库serverfile linu ...

    随机推荐

    快速上手php:使用PhpStrom部署项目

    闲话 上学的时候一直以为可以专注自己的领域,以为与php无缘的,但是这种想法是错误,在完成任务的时候,你不得不使用你不熟悉的语言或者框架.正所谓业务驱动开发,这次接手已经离职的前辈的留下来的项目,最蛋 ...

    mac系统使用帮助

    在linux下习惯使用ll.la.l等ls别名的童鞋到mac os可就郁闷了-- 其实只要在用户目录下建立一个脚本“.bash_profile”,并输入以下内容即可: alias ll='ls -al ...

    localStorage兼容ie6/7 用addBehavior 实现

    制作过程我就不说了,程序下面会占出来 define(function(){ if('localStorage' in window) return; function Storage(){ this. ...

    去掉或者修改 input、select 等表单的【默认样式 】

    隐藏input等表单的默认样式的背景: textarea,select,input{-webkit-appearance: none; -moz-appearance: none; -o-appear ...

    PHP文件类型检查类-比较全的

    在CSDN上淘来的一个文件类型的类,还不错,留下自己看! /** * 检证文件类型类 * * @author */ class FileTypeValidation { // 文件类型,不 ...

    MapReduce 规划 系列十 采用HashPartitioner调整Reducer计算负荷

    example4它演示了如何指定Reducer号码,本节演示如何使用HashPartitioner将Mapper根据该输出key分组后Reducer为了应对. 合理的分组策略会尽一切Reducer不能 ...

    (译)xDS REST and gRPC protocol

    展开全文
  • Linux下文件名乱码解决

    千次阅读 2021-05-09 00:02:19
    zxf convmv-1.14.tar.gz -C /usr/localcd /usr/localmake installconvmv -f GBK -t UTF-8 --notest GBK编码的文件名详细参考下面内容:如果你需要在linux下面用到windows下的文件,拷贝上去后经常发现中文显示乱码。...
  • 利用 winSCP 将windows系统的文件上传到linux ,含有中文的文件名,其文件在linux下会显示乱码 ,可以winscp 环境中设置。Linux下经常遇到的编码问题如果你需要在Linux中操作windows下的文件,那么你可能会...
  • linux下文件编码转换:方法一:Vim中直接进行转换文件编码,比如将一个文件转换成utf-8格式:set fileencoding=utf-8或者11)设置文件集合,即要对哪些文件进行操作,可以使用通配符,比如我通常是对 C/C++ 源程序...
  • [TOC]问题前几天生病了,Java一直看代码但是没跟着打,于是决定偷一波小小的懒,直接把教材的代码从Windows通过共享文件夹放到了Linux里面。但是编译的时候出现了问题。 打开文件看,出现乱码。输入:set file...
  • 文件是在Windows下创建的,而Windows文件名中文编码默认GBK,Linux中默认文件名编码为UTF-8,编码不一致导致了文件名乱码的问题,解决这个问题需要对文件名进行转码,这个工具就是convmv。SYNOPSIS: convmv ...
  • 在windows上使用ftp上传文件到Linux上,中文名称在Linux系统中显示为乱码,怎么解决呢?今天小编抽空给大家分享CentOS 中文文件名显示乱码问题的解决方法,需要的的朋友参考
  • Linux下中文显示乱码是因为Linux中使用的是UTF-8编码 WINDOWS使用的是GBK编码 可以在LINUX中使用convmv工具来对文件名进行转码 当然如果文件名转码为UTF-8后 WINDWOS资源管理器中使用FTP进行查看时就会乱码 可以把...
  • 1.下载下来压缩包解压之后,文件名出现乱码,文件内容是正常的 -rw-rw-r-- 1 kql kql 39085 12月 16 2019 10.·ÇÏßÐԻعé.ipynb -rw-rw-r-- 1 kql kql 6205 12月 16 2019 13.mnistÊý¾Ýʶ±ð¼òµ...
  • 转自:http://blog.sina.com.cn/s/blog_6261f8690101c1gx.htmlwindows的zip文件,在linux下解压时,经常会出现文件名乱码的情况。主要原因是,在windows下压缩文件时,是以系统的默认编码(gbk,gb18030)来压缩,zip...
  • 在windows下文件名正常,但部署linux下文件名却出现乱码 搞了一个晚上,知道是编码的问题,网上查到的大致有两种解决方面(好像都不行): 1、修改java.util.zip对应的类。这个方法改了太麻烦了,而且ant包中的...
  • windows下发文件到linux中文名乱码解决办法
  • 解决Linux下挂载Windows局域网共享出现文件名乱码。 对于Linux系统和Windows系统共存的局域网,经常需要通过共享来传输文件等。也经常会碰到文件夹和文件名称出现中文乱码的问题,导致文件或文件夹无法打开。本文...
  • win创建一个中文文件名的文件,例如 工作表.xml 上传到服务器后,在Linux服务器端,显示是乱码或者问号。这是因为win系统默认编码是GBK,win创建的文件,文件名是用GBK编码的。Linux默认是UTF-8,此时GBK...
  • windows下的zip文件,在linux下解压时,经常会出现文件名乱码的情况。 主要原因是,在windows下压缩文件时,是以系统的默认编码(gbk,gb18030)来压缩,zip文件并没有声明编码的格式,因此,linux下解压缩时,也会使用...
  • 问题描述:博主准备将还有中文的data文件从windows传到linux进行大数据分析,但是发现从windows传到linux之后,中文乱码
  • Linux中操作windows下的文件,可能会经常遇到文件编码转换的问题。Windows中默认的文件格式是GBK(gb2312),而Linux一般都是UTF-8。下面介绍一下,在Linux中如何查看文件的编码及如何进行对文件进行编码转换。查看...
  • 604作者:小新今天小编给大家分享的是linux系统中中文文件名乱码的处理方法,很多人都不太了解,今天小编为了让大家更加了解linux系统中中文文件名乱码的处理方法,所以给大家总结了以下内容,一起往看吧。...
  • windows 上传到linux上,文件名存在中文乱码问题windows 上的编码格式是使用的gbklinux 上使用的编码格式是utf-8yum install convmvconvmv -f gbk -t utf-8 -r --notest /home/要操作的文件-r 递归处理子文件夹–no...
  • 当我把中文文件名文件cp到windows的fat32盘后,重起进入windows后发现文件名全是乱码。首先google,baidu了,发现都推荐用convmv,这个工具是用perl编写的,确实非常好用的工具,不过我这里它不适合。--------...
  • 我们可能会遇到这一现象,把Linux上的文件上传到Windows,或者把Windows上的文件上传到Linux,然后打开文件后中文会出现乱码,这是什么原因呢? Windows的文件编码一般是gb2312,Linux的编码是UTF-8(我的是这个。)...
  • 由于zip格式并没有指定编码格式,Windows下生成的zip文件中的编码是GBK/GB2312等,因此,导致这些zip文件在Linux下解压时出现乱码问题,因为Linux下的默认编码是UTF8。 解决方案一 使用7z解压。 安装p7zip和convmv ...
  • 原因在于,Windows文件名中文编码默认为GBK,压缩或者上传后,文件名还会是GBK编码,而Linux中默认文件名编码为UTF8,由于编码不一致所以导致了文件名乱码的问题,解决这个问题需要对文件名进行转码。 解决办法...
  • linux复制(文件)文件夹到windows,如果文件名中有中文,则很有可能乱码linux下生成的压缩文件.zip或者.tar .rar在linux下解压时,文件名为中文时解压后就为乱码,文件内容不会解决之道就是在linux安装一个叫7zip的...
  • 文件是在WIndows 创建的,Windows文件名中文编码默认为GBK,而Linux中默认文件名编码为UTF8,由于编码不一致所以导致了文件名乱码的问题,解决这个问题需要对文件名进行转码。sudo apt-get installconvmvconvmv ...
  • 浮动垃圾:由于 CMS 并发清理阶段用户线程还运行着,伴随程序运行自然就还会有新的垃圾不断产生,这一部分垃圾出现标记过程之后,CMS无法当次收集中处理掉它们,只好留待一次GC时再清理掉。这一部分垃圾就...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,995
精华内容 6,798
关键字:

windows文件名在linux下乱码