从Windows复制文件到Linux显示乱码问题
(1).文件名乱码
这并不是所有人都会碰到的问题,一般常见于使用putty的用户。使用convmv命令可以解决这个问题。
我写详细一点还原真实场景,首先我来上传一个测试文件“a此文件在windows下打开正常-到linux下vim打开乱码.txt”。在确保putty可以正常连接到Linux上,打开Windows上的命令提示符输入pscp命令(pscp [Windows上的文件位置,可以绝对路径,可以相对路径] [以什么用户登录Linux]@[Linux的IP地址]:[传到Linux上什么位置,绝对路径])。
1 2 3 4 | 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下看看上传后的文件
1 2 3 4 | [xf@xuexi ~]$ ls 1 secondDir 视频 下载 a???ļ???windows?´???????-??linux??vim????????.txt 公共 图片 音乐 mainDir 模板 文档 桌面 |
可以看到有一个a开头的乱码文件名,看一下自己有没有convmv命令,没有就yum安装一下,记住这时需要使用root用户
1 2 3 4 5 6 7 | [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选项(遍历目录)
1 2 3 4 5 6 7 | [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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | [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).文件内的乱码
转换完文件名的乱码其实并没有结束,因为文件内容还是乱码
1 2 3 4 5 6 | [xf@xuexi ~]$ cat a此文件在windows下打开正常-到linux下vim打开乱码.txt #!/bin/bash echo 'ѧϰ' echo 'ѧϰ' echo 'ѧϰ' echo 'ѧϰ' |
这时需要用到iconv命令,没有yum安装一下。这里会用到-f选项(源文件格式),-t选项(想要的格式),-o选项(输出文件)
1 2 3 4 5 6 7 | [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命令重新给一个新的文件名
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | [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 公共 模板 视频 图片 文档 下载 音乐 桌面 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性