从Windows复制文件到Linux显示乱码问题
(1).文件名乱码 这并不是所有人都会碰到的问题,一般常见于使用putty的用户,他们使用pscp和pftp传递文件。大部分伪终端都会自带一个专门用于传递文件的端口或软件,只要设置好就不会出现此问题。如果遇到了也不要害怕,使用convmv命令可以解决你所遇到的这个问题。 我写详细一点还原真实场景,首先我来上传一个测试文件“a此文件在windows下打开正常-到linux下vim打开乱码.txt”。在确保putty可以正常连接到Linux上,打开Windows上的命令提示符输入pscp命令(pscp [Windows上的文件位置,可以绝对路径,可以相对路径] [以什么用户登录Linux]@[Linux的IP地址]:[传到Linux上什么位置,绝对路径])。 C:Usersxuefei>pscp c:UsersxuefeiDesktopa此文件在windows下打开正常-到linux 下vim打开乱码.txt [email?protected]:/home/xf/ [email?protected]‘s password: a此文件在windows下打开正?| 0 kB | 0.1 kB/s | ETA: 00:00:00 | 100% 这就上传好,下面我们来Linux下看看上传后的文件 [[email?protected] ~]$ ls 1 secondDir 视频 下载 a???????windows?′???????-??linux??vim????????.txt 公共 图片 音乐 mainDir 模板 文档 桌面 可以看到有一个a开头的乱码文件名,看一下自己有没有convmv命令,没有就yum安装一下,记住这时需要使用root用户 [[email?protected] ~]# 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选项(遍历目录) [[email?protected] ~]# 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! [[email?protected] ~]# 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 [[email?protected] ~]$ 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).文件内的乱码 转换完文件名的乱码其实并没有结束,因为文件内容还是乱码 [[email?protected] ~]$ cat a此文件在windows下打开正常-到linux下vim打开乱码.txt #!/bin/bash echo ‘??‘ echo ‘??‘ echo ‘??‘ echo ‘??‘ 这时需要用到iconv命令,没有yum安装一下。这里会用到-f选项(源文件格式),-t选项(想要的格式),-o选项(输出文件) [[email?protected] ~]$ iconv -f gbk -t utf8 a此文件在windows下打开正常-到linux下vim打开乱码.txt -o a此文件在windows下打开正常-到linux下vim打开乱码.txt //我这里将编译后的文件输出到源文件 [[email?protected] ~]$ cat a此文件在windows下打开正常-到linux下vim打开乱码.txt #!/bin/bash echo ‘学习‘ echo ‘学习‘ echo ‘学习‘ echo ‘学习‘ (3).扩展 如果你对文件名没有要求,或文件名输入并不复杂,可以将直接使用iconv命令重新给一个新的文件名 [[email?protected] ~]$ ls 1 secondDir 视频 下载 a???????windows?′???????-??linux??vim????????.txt 公共 图片 音乐 mainDir 模板 文档 桌面 [[email?protected] ~]$ iconv -f gbk -t utf8 a???????windows?′???????-??linux??vim????????.txt -o a.txt [[email?protected] ~]$ ls 1 mainDir 模板 文档 桌面 a???????windows?′???????-??linux??vim????????.txt secondDir 视频 下载 a.txt 公共 图片 音乐 [[email?protected] ~]$ cat a.txt #!/bin/bash echo ‘学习‘ echo ‘学习‘ echo ‘学习‘ [[email?protected] ~]$ rm a???????windows?′???????-??linux??vim????????.txt [[email?protected] ~]$ ls 1 a.txt mainDir secondDir 公共 模板 视频 图片 文档 下载 音乐 桌面 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- WP7:无法在对WCF服务的异步调用中捕获FaultException
- windows-server-2012-r2 – 消失的硬盘空间 – Server 2012
- windows – 集中远程AD DC?
- 使我们的Windows用户社区更容易使用ssh
- windows-server-2003 – 说服管理层高成本的方法
- 【原】无脑操作:Windows下搭建Kafka运行环境
- 如何从命令行在Windows7上以管理员身份运行命令?
- Windows上的Jupyter与Anaconda不会运行单元格
- windows-server-2003 – 如何确定MSMQ 3.0容量和服务器规格
- Windows Phone 7 – 如何通过代码获取WP7中的“区域和语言”