精华内容
下载资源
问答
  • 所以当在Windows上使用ftp方式从Linux上传下拉时,会导致上传文件名的中文变成了乱码,而下拉时找不到指定文件, 解决办法: 1、CentOS 输入 yum install convmv convmv -f gbk -t utf-8 -r --notest /home/ ...

    问题

    在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;
    }

     

    展开全文
  • 解决FAT32文件系统分区中文文件名在Linux下显示乱码
                   

    原贴:

    http://ericzqma.blogs.mu/2009/06/11/%E8%A7%A3%E5%86%B3fat32%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E5%88%86%E5%8C%BA%E4%B8%AD%E6%96%87%E6%96%87%E4%BB%B6%E5%90%8D%E5%9C%A8linux%E4%B8%8B%E6%98%BE%E7%A4%BA%E4%B9%B1%E7%A0%81/

    升级到Fedora 11后,使用以前的fstab自动挂载我的fat32分区居然发现我的fat32文件系统中的中文文件名显示为乱码。

    找了下相关资料发现是iocharset的问题:

    iocharset=name — Character set to use for converting between theencoding is used for user visible filename and 16 bit Unicodecharacters. Long filenames are stored on disk in Unicode format, butUnix for the most part doesn’t know how to deal with Unicode. Bydefault, FAT_DEFAULT_IOCHARSET setting is used.

    Windows文件系统的长文件名是用16位的Unicode存储的, 而Linux文件系统不支持16位的字符,所以需要在两者之间转换,这就是iocharset要完成的功能。

    使用utf8=1选项进行mount就可以了,相应的fstab行如下:

    /dev/sda1    /mnt/wxp    vfat    umask=0000,utf8=1   0 0

    使用mount命令时加入 -o utf8=1就可以了。

    不建议使用iocharset=utf8选项:
    NOTE: “iocharset=utf8″ is not recommended.
    If unsure, you should consider the following option instead.
    utf8=<bool>   — UTF-8 is the filesystem safe version of Unicode that is used by the console.
    It can be be enabled for the filesystem with this option.
    If ‘uni_xlate’ gets set, UTF-8 gets disabled.
    <bool> : 0,1,yes,no,true,false

    Reference:
    http://linuxman.blog.ccidnet.com/blog-htm-do-showone-type-blog-itemid-283304-uid-60710.html

     

               

    再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

    展开全文
  • 利用 winSCP 将windows系统的文件上传到linux ,含有中文的文件名,其文件在linux下会显示乱码 ,可以winscp 环境中设置。 linux下经常遇到的编码问题 如果你需要在Linux中操作windows下的文件,那么你...
    利用 winSCP 将windows系统下的文件上传到linux 下,含有中文的文件名,其文件在linux下会显示乱码 ,可以在winscp 环境中设置。


    linux下经常遇到的编码问题
    如果你需要在Linux中操作windows下的文件,那么你可能会经常遇到文件编码转换的问题。Windows中默认的文件格式是GBK(gb2312),而Linux一般都是UTF-8
    查看编码的方法
    方法一:file filename
    方法二:在Vim中可以直接查看文件编码
    :set fileencoding
    如果你只是想查看其它编码格式的文件或者想解决用Vim查看文件乱码的问题,那么你可以在
    ~/.vimrc 文件中添加以下内容:
    set encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936
    这样,就可以让vim自动识别文件编码(可以自动识别UTF-8或者GBK编码的文件),其实就是依照fileencodings提供的编码列表尝试,如果没有找到合适的编码,就用latin-1ASCII)编码打开
    文件编码转换
    多平台方法:
    iconv        提供标准的程序和API来进行编码转换;
    convert_encoding.py    基于Python的文本文件转换工具;
    decodeh.py    提供算法和模块来谈测字符的编码;

    linux下文件编码转换:

    方法一:

    在Vim中直接进行转换文件编码,比如将一个文件转换成utf-8格式
      :set fileencoding=utf-8

    或者

    11)设置文件集合,即要对哪些文件进行操作,可以使用通配符,比如我通常是对 C/C++ 源程序进行编码转换

    :args *.h *.cpp

    2)给出要在每个文件上执行的命令,这里是转换编码:

    :argdo set fenc=utf-8 | update

    方法二:

    iconv 转换

    5.案例:

    假如说我们将windows下的一个UTF-8的文件传到linux环境下,linux环境下的系统编码是GB18030,我们cat的时候就会出现乱码,这个时候就应该想到转码了,下面我们来进行试验:

    我们将windows下一个名为UTF-8.sh的文件传到linux系统中,其中UTF-8.sh的内容如下:

    我是中文编码UTF-8模式~

    而linux系统的系统语言设置为:

    [root@sor-sys zy]# cat /etc/sysconfig/i18n 
    LANG=zh_CN.GB18030
    SYSFONT="latarcyrheb-sun16"
    这个时候查看一下文件的内容及编码:

    [root@sor-sys zy]# file UTF-8.sh 
    UTF-8.sh: UTF-8 Unicode text, with no line terminators
    [root@sor-sys zy]# cat UTF-8.sh 
    锘挎垜鏄腑鏂囩紪鐮乁TF-8妯″紡~[root@sor-sys zy]# 
    [root@sor-sys zy]# 

    这个时候我们就需要转换编码了,记得使用iconv

    [root@sor-sys zy]# iconv -f UTF-8 -t GB18030 UTF-8.sh -o GB18030.sh
    [root@sor-sys zy]# cat GB18030.sh
    ??我是中文编码UTF-8模式~[root@sor-sys zy]# 
    [root@sor-sys zy]# file GB18030.sh 
    GB18030.sh: Non-ISO extended-ASCII text, with no line terminators
    [root@sor-sys zy]# 

    convmv就是更改文件名编码方式的一个工具。
    比如  
     
            sudo convmv -f gbk -t utf-8 -r –notest  /home  
    就是将/home目录下原来文件名是gbk编码方式的全部改为utf-8格式的。这里 -f  后面为原来的编码方式,-t 后面是要更改为的编码方式, -r 表示这个目录下面的所有文件, –notest 表示马上执行,而不是仅仅测试而已。另外这命令好像要root才能执行,因此要加上 sudo。
    展开全文
  • 如果你需要在Linux中操作windows下的文件,那么你可能会经常遇到文件编码转换的问题。Windows中默认的文件格式是GBK(gb2312),而Linux一般都是UTF-8。 查看编码的方法 方法一:file filenam

    via: http://blog.csdn.net/ariessurfer/article/details/8168012

     

    linux下经常遇到的编码问题

    如果你需要在Linux中操作windows下的文件,那么你可能会经常遇到文件编码转换的问题。Windows中默认的文件格式是GBK(gb2312),而Linux一般都是UTF-8。

    查看编码的方法

    方法一:file filename

    方法二:在Vim中可以直接查看文件编码

    :set fileencoding

    如果你只是想查看其它编码格式的文件或者想解决用Vim查看文件乱码的问题,那么你可以在

    ~/.vimrc 文件中添加以下内容:

    set encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936

    这样,就可以让vim自动识别文件编码(可以自动识别UTF-8或者GBK编码的文件),其实就是依照fileencodings提供的编码列表尝试,如果没有找到合适的编码,就用latin-1(ASCII)编码打开

    文件编码转换

    多平台方法:

    iconv        提供标准的程序和API来进行编码转换;

    convert_encoding.py    基于Python的文本文件转换工具;

    decodeh.py    提供算法和模块来谈测字符的编码;

    linux下文件编码转换:

     

    方法一:

     

    在Vim中直接进行转换文件编码,比如将一个文件转换成utf-8格式

      :set fileencoding=utf-8

     

    或者

     

    11)设置文件集合,即要对哪些文件进行操作,可以使用通配符,比如我通常是对 C/C++ 源程序进行编码转换

     

    :args *.h *.cpp

     

    2)给出要在每个文件上执行的命令,这里是转换编码:

     

    :argdo set fenc=utf-8 | update

     

    方法二:

     

    iconv 转换

     

    5.案例:

     

    假如说我们将windows下的一个UTF-8的文件传到linux环境下,linux环境下的系统编码是GB18030,我们cat的时候就会出现乱码,这个时候就应该想到转码了,下面我们来进行试验:

     

    我们将windows下一个名为UTF-8.sh的文件传到linux系统中,其中UTF-8.sh的内容如下:

     

    我是中文编码UTF-8模式~

     

    而linux系统的系统语言设置为:

     

    [root@sor-sys zy]# cat /etc/sysconfig/i18n 

    LANG=zh_CN.GB18030

    SYSFONT="latarcyrheb-sun16"

    这个时候查看一下文件的内容及编码:

     

    [root@sor-sys zy]# file UTF-8.sh 

    UTF-8.sh: UTF-8 Unicode text, with no line terminators

    [root@sor-sys zy]# cat UTF-8.sh 

    锘挎垜鏄腑鏂囩紪鐮乁TF-8妯″紡~[root@sor-sys zy]# 

    [root@sor-sys zy]# 

     

    这个时候我们就需要转换编码了,记得使用iconv,类似的工具还有convmv

     

    [root@sor-sys zy]# iconv -f UTF-8 -t GB18030 UTF-8.sh -o GB18030.sh

    [root@sor-sys zy]# cat GB18030.sh

    ??我是中文编码UTF-8模式~[root@sor-sys zy]# 

    [root@sor-sys zy]# file GB18030.sh 

    GB18030.sh: Non-ISO extended-ASCII text, with no line terminators

    展开全文
  • fat32分区删除文件恢复升级到Fedora 11后,使用以前的fstab自动挂载我的fat32分区居然发现我的fat32文件系统中的中文文件名显示为乱码。 升级到Fedora 11后,使用以前的fstab自动挂载我的fat32分区居然发现我的fat32...
  • linux文件名乱码在windows上使用ftp上传文件到Linux上,中文名称在Linux系统中显示为乱码。虽然将Linux的env设置了LANG=en_US.UTF-8,并且本地的Shell客户端编码也设置成UTF-8,但Shell中(或通过http访问),仍是...
  • 在linux(虚拟机)通过挂载系统将该文件挂载/mnt/hgfs目录,显示为乱码。但是通过ftp将文件上传到linux相应目录中文显示正常。 2.原因分析 windows下文件名编码方式为GBK。linux(虚拟机)系统通过...
  • windows文件名中文编码默认为GBK,而Linux中默认文件名编码为UTF8,由于编码不一致,所以导致了文件名乱码的问题,解决这个问题需要对文件名进行转码。 在Linux中专门提供了一种工具convmv进行文件名编码的转换,...
  • 现象:WINDOWS上传中文文件名文件到LINUX后,中文文件名乱码,中文内容乱码 解决:首先考虑到的应该是字符编码不一致导致,其次再看是否没安装中文包 1、检查是否安装convmv工具 [oracle@result tmp]$ rpm -qa |...
  • 安装 convmv 这个软件. convmv -f 源编码 -t 新编码 [选项] 文件名 ...--notest 真正进行操作,请注意默认情况是不对文件进行真实操作的,而只是试验。 --list 显示所有支持的编码 --unescap 可以做一下转义,比
  • 在windows下文件名正常,但部署linux下文件名却出现乱码 搞了一个晚上,知道是编码的问题,网上查到的大致有两种解决方面(好像都不行): 1、修改java.util.zip对应的类。这个方法改了太麻烦了,而且ant包中的...
  • Linux_windows下文件名和内容乱码

    千次阅读 2017-07-13 16:36:32
    ps: convmv 转码后的文件 在windows下文件名又是乱码 三、xftp,filezilla 第三方ftp客户端 第三方ftp客户端也是造成windows > linux 乱码的原因之一 如果windowftp客户端默认使用本地编码,所以会...
  • 当我把中文文件名文件cp到windows的fat32盘后,重起进入windows后发现文件名全是乱码。       首先google,baidu了,发现都推荐用convmv,这个工具是用perl编写的,确实非常好用的工具,不过我这里它不...
  • 解决linux下中文文件名显示乱码问题

    万次阅读 2018-03-06 18:35:39
    在windows上使用ftp上传文件到Linux上,中文名称在Linux系统中显示为乱码。虽然将Linux的env设置了LANG=en_US.UTF-8,并且本地的Shell客户端编码也设置成UTF-8,但Shell中(或通过http访问),仍是乱码…… 原因...
  • Linux下中文显示乱码是因为Linux中使用的是UTF-8编码 WINDOWS使用的是GBK编码 可以在LINUX中使用convmv工具来对文件名进行转码 当然如果文件名转码为UTF-8后 WINDWOS资源管理器中使用FTP进行查看时就会乱码 可以把...
  • JAVA生成文件在linux下文件名乱码

    千次阅读 2016-10-27 20:42:44
    JAVA中生成文件,文件名生成在windows下就正常,但是在linux下生成就乱码。 解决方式 代码中文件名用这样的方式转换 String remoteFileName = new String(sendModel.getString("fileName").getBytes("GBK"),  ...
  • 解决Linux下挂载Windows局域网共享出现文件名乱码。 对于Linux系统和Windows系统共存的局域网,经常需要通过共享来传输文件等。也经常会碰到文件夹和文件名称出现中文乱码的问题,导致文件或文件夹无法打开。本文...
  • 2019独角兽企业重金招聘Python工程师标准>>> ...
  • 在windows下文件名正常,但部署linux下文件名却出现乱码 搞了一个晚上,知道是编码的问题,网上查到的大致有两种解决方面(好像都不行): 1、修改java.util.zip对应的类。这个方法改了太麻烦了,...
  • 问题出压缩和解压的时候对文件名的编码不一致所致 解决方法:linux下用7z压缩文件,windows下就不会乱码了,用tar和zip,rar等等都不行

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,133
精华内容 6,053
关键字:

windows文件名在linux下乱码

linux 订阅