(1).文件名乱码

  这并不是所有人都会碰到的问题,一般常见于使用putty的用户。使用convmv命令可以解决这个问题。

  我写详细一点还原真实场景,首先我来上传一个测试文件“a此文件在windows下打开正常-到linux下vim打开乱码.txt”。在确保putty可以正常连接到Linux上,打开Windows上的命令提示符输入pscp命令(pscp [Windows上的文件位置,可以绝对路径,可以相对路径] [以什么用户登录Linux]@[Linux的IP地址]:[传到Linux上什么位置,绝对路径])。

C:\Users\xuefei>pscp c:\Users\xuefei\Desktop\a此文件在windows下打开正常-到linux
下vim打开乱码.txt xf@192.168.0.10:/home/xf/
xf@192.168.0.10's password:
a此文件在windows下打开正?| 0 kB | 0.1 kB/s | ETA: 00:00:00 | 100%

  这就上传好,下面我们来Linux下看看上传后的文件

[xf@xuexi ~]$ ls
1 secondDir 视频 下载
a???ļ???windows?´???????-??linux??vim????????.txt 公共 图片 音乐
mainDir 模板 文档 桌面

  可以看到有一个a开头的乱码文件名,看一下自己有没有convmv命令,没有就yum安装一下,记住这时需要使用root用户

[root@xuexi ~]# yum install convmv
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.cn99.com
* extras: mirrors.aliyun.com
* updates: mirrors.cn99.com
CentOS7 | 3.6 kB 00:00

  安装完convmv命令,可以--help一下看看如何使用。这里会使用到-f选项(源文件编码格式),-t(想要的格式),--notest选项(文件重新命名)。如果是目录还需要-r选项(遍历目录)

[root@xuexi ~]# convmv -f gbk -t utf8 --notest /home/xf/a���ļ���windows�´�������-��linux��vim��������.txt
mv "/home/xf/a���ļ���windows�´�������-��linux��vim��������.txt" "/home/xf/a此文件在windows下打开正常-到linux下vim打开乱码.txt"
Ready!
[root@xuexi ~]# ls /home/xf/
1 secondDir 视频 下载
a此文件在windows下打开正常-到linux下vim打开乱码.txt 公共 图片 音乐
mainDir 模板 文档 桌面

  看,这就完成了。

注意:Windows编码是gb2312,我的Linux编码是UTF-8。想要看自己的编码可以使用locale查看。详细了解可以看   https://www.cnblogs.com/diantong/p/10200145.html

[xf@xuexi ~]$ 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=

(2).文件内的乱码

  转换完文件名的乱码其实并没有结束,因为文件内容还是乱码

[xf@xuexi ~]$ cat a此文件在windows下打开正常-到linux下vim打开乱码.txt
#!/bin/bash
echo 'ѧϰ'
echo 'ѧϰ'
echo 'ѧϰ'
echo 'ѧϰ'

  这时需要用到iconv命令,没有yum安装一下。这里会用到-f选项(源文件格式),-t选项(想要的格式),-o选项(输出文件)

[xf@xuexi ~]$ iconv -f gbk -t utf8 a此文件在windows下打开正常-到linux下vim打开乱码.txt -o a此文件在windows下打开正常-到linux下vim打开乱码.txt  //我这里将编译后的文件输出到源文件
[xf@xuexi ~]$ cat a此文件在windows下打开正常-到linux下vim打开乱码.txt
#!/bin/bash
echo '学习'
echo '学习'
echo '学习'
echo '学习'

(3).扩展

  如果你对文件名没有要求,或文件名输入并不复杂,可以将直接使用iconv命令重新给一个新的文件名

[xf@xuexi ~]$ ls
1 secondDir 视频 下载
a???ļ???windows?´???????-??linux??vim????????.txt 公共 图片 音乐
mainDir 模板 文档 桌面
[xf@xuexi ~]$ iconv -f gbk -t utf8 a���ļ���windows�´�������-��linux��vim��������.txt -o a.txt
[xf@xuexi ~]$ ls
1 mainDir 模板 文档 桌面
a???ļ???windows?´???????-??linux??vim????????.txt secondDir 视频 下载
a.txt 公共 图片 音乐
[xf@xuexi ~]$ cat a.txt
#!/bin/bash
echo '学习'
echo '学习'
echo '学习'
[xf@xuexi ~]$ rm a???ļ???windows?´???????-??linux??vim????????.txt
[xf@xuexi ~]$ ls
1 a.txt mainDir secondDir 公共 模板 视频 图片 文档 下载 音乐 桌面

  

从Windows复制文件到Linux显示乱码问题的更多相关文章

  1. 从Windows复制文件到Linux

    PuTTY自带的pscp非常好用. 使用方式和Linux中的scp命令很像,格式如下: pscp 文件 用户名@LinuxIP:目录 例如: pscp d:/a.iso root@192.168.1. ...

  2. 解决Windows下文件在Linux下打开出现乱码的问题

    目录 问题 原理 解决 总结 参考资料 问题 前几天生病了,Java一直在看代码但是没跟着打,于是决定偷一波小小的懒,直接把教材的代码从Windows通过共享文件夹放到了Linux里面.但是编译的时候 ...

  3. Windows 压缩文件到 Linux中解压文件名乱码

    问题 在Windows中将文件夹压缩后,拿到Ubuntu系统中解压,中文文件名乱码 解决 因为两个系统所使用的编码不同,Windows一般使用GBK编码,Ubuntu使用utf8编码,只需要在解压的时 ...

  4. Xshell 、PuTTY 复制文件到Linux

    一.使用Xshell 在linux下下载一个需要安装一个工具lrzsz包: [root@localhost home] # yum install -y lrzsz 从windows上传文件到linu ...

  5. python生成html文件浏览器中文显示乱码问题

    近来在网上采集数据,想把采集下来的数据整合成html的形式保存.以便其他的平台产品可以直接读取html显示或者根据html标签提取数据. def output_html(self): try: fou ...

  6. HTML 表单 存为EXCEL文件时 中文显示乱码

    在做宣传品发放系统时,需求要把数据库查询的记录生成表单并转存excel文件. 在转存的EXCEL文件中文显示乱码,表格和其他字符正常,检查后发现是创建EXCEL文件打开模式不对 之前: myfile ...

  7. 记一下拷贝windows下文件到linux下的方法

    去官网下载的Putty中包含了如下文件: 其中pscp.exe是一个远程复制文件的工具. 官网:https://www.chiark.greenend.org.uk/~sgtatham/putty/l ...

  8. vscode打开文件,中文显示乱码(已解决)

    之前使用vscode打开keil的文件后,发现显示乱码,网上查找资料发现大多是这种方法:将files.autoGuessEncoding改为true,但是并没有用. 发现第二种方法为:在vscode中 ...

  9. windows下的文件到linux下乱码 iconv 修改文件编码

    conv [选项...] [文件...] 有如下选项可用: 输入/输出格式规范:-f, --from-code=名称 原始文本编码-t, --to-code=名称 输出编码 信息:-l, --list ...

随机推荐

  1. 用python爬校花网

    import requests import re import hashlib,time def get_index(url): response=requests.get(url) if resp ...

  2. 三星 C7恢复 出厂设置

    http://jingyan.baidu.com/article/c14654134f0fd20bfcfc4c1e.html

  3. 【BZOJ】3790 神奇项链

    [算法](manacher+贪心)||(manacher+DP+树状数组/线段树) [题解] manacher求回文串,后得到线段,做一点计算映射回原串线段. 然后问题转化为可重叠区间线段覆盖问题,可 ...

  4. IT界天才少年:比肩雷军、叫板任正非,自己作死了

    两点之间,走弯路和走直路到达的终点是一样的,而他只是走了弯路,他曾在华为身居高位.后又创业.做投资,完全是不差钱的主. 他跌宕起伏的人生中充满传奇,成功.失败.遗憾.矛盾,每个词都不足以形容他,只有这 ...

  5. dev_cpu_dead

    Kernel: 4.12.6 每个cpu都有自己的softnet_data结构,用来处理数据包接收,但是当softnet_data所在cpu无法工作时,即CPUHP_NET_DEV_DEAD状态,就需 ...

  6. Tabular DataStream protocol 协议

    Tabular DataStream protocol 协议 Freetds 创建过程 https://wenku.baidu.com/view/2076cbfaaef8941ea76e0576.ht ...

  7. 【bzoj2006】NOI2010超级钢琴

    补了下前置技能…… 题意就是求一段区间的权值和前k大的子序列的和. 把段扔进优先队列 每次拿出来之后按照所选择的j进行分裂 #include<bits/stdc++.h> #define ...

  8. [ Python ] 文件的读写操作

    1. 文件读写操作 读写文件是最常见的 IO 操作, Python 内置了读写文件的函数.在磁盘上读写文件的功能是由操作系统提供的,所以读写文件是请求操作系统打开一个文件对象(通常称为文件描述符),然 ...

  9. Leetcode 之Regular Expression Matching(31)

    正则表达式的匹配,还是挺难的.可根据下一个字符是不是*分为两种情况处理,需要考虑多种情况. bool isMatch(const char *s, const char *p) { if (*p == ...

  10. initWithFrame和initWithCoder的区别

    如果使用了Interface Builder 方式或nib,就不会调用initWithFrame方法,因为nib文件知道怎么初始化了, 但可以使用initWithCoder这一个更深层的init方法来 ...