解决Windows电脑文件乱码问题的技巧
有志者,事竟成!如果你在学习文章,那么本文《解决Windows电脑文件乱码问题的技巧》,就很适合你!文章讲解的知识点主要包括,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~
文件打开是乱码怎么解决?在我们使用电脑中,都遇到过打开文件后,发现全是乱码。遇到这种情况,该怎么解决呢?这里小编整理了一些实用的文件修复方法,有需要的朋友可以来看看哦。
个人建议
修改时尽量修改自定义选项例如.bash_profile,.vimrc文档,这样不会忘记自己修改了哪里,有时候某处的修改导致后面出现了新的问题,但却无法定位。
汉字乱码现象有4种类型:
1.文本乱码:是windows系统显示乱码,如:菜单、桌面、提示框等。这是由于注册表中有关字体部分的设置不当引起的;
2. 文档乱码:是各种应用程序,游戏本来显示中文的地方出现乱码。 这种乱码形成的原因比较复杂,有第1类的乱码原因,也有可能是软件中使用的中文动态链接库被英文动态链接库复盖处造成的;
3.文件乱码:主要是指邮件乱码;
4.网页乱码:是由于港台的繁体中文大五码(big5)与大陆简体中文(gb2312)不通用而造成的。
文件内容乱码
以.txt文档为例,直接打开是乱码,可通过下面方法查看情况,在vim软件中输入
#查看当前文件编码:set fileencodingfileencoding=gb18030
在.vimrc文档下加入
set fileencodings=utf-8,gb2312,gb18030,gbk,ucs-bom,cp936,latin1set enc=utf8set fencs=utf8,gbk,gb2312,gb18030
此时文档会正确显示。
解压文件夹文件名乱码
对于windows平台,编码格式是GBK,对应的汉字是两个字节长度。对于Linux平台,编码格式是UTF-8,对应的汉字是3个字节。
解压文件夹的命令
unzip -O CP936 testCode.zip
对应的解释
unzip --h-O CHARSET specify a character encoding for DOS, Windows and OS/2 archives
命令行乱码怎么办?
执行以下命令
vim ~/.bash_profile #添加下面的命令export LANGUAGE=en_US.UTF-8export LANG=en_US.UTF-8export LC_ALL=en_US.UTF-8 #使得生效,有的让重启是一个意思source ~/.bash_profile
使用命令查看当前编码
locale:local encode,即本地编码的意思。这个命令不带任何参数就是显示当前系统的字符集编码。也可以设置环境变量,全体参数man locale
在Linux中通过locale来设置程序运行的不同语言环境,locale由ANSI C提供支持。locale的命名规则为<语言>_<地区>.<字符集编码>,如zh_CN.UTF-8,zh代表中 文,CN代表大陆地区,UTF-8表示字符集。
locale#LANG LC_*的默认值,是最低级别的设置,如果LC_*没有设置,则使用该值。类似于 LC_ALL。LANG=en_US.UTF-8LANGUAGE=en_US.UTF-8#LC_CTYPE用于字符分类和字符串处理,控制所有字符的处理方式,包括字符编码,字符是单字节还是多字节,如何打印等。是最重要的一个环境变量。LC_CTYPE="en_US.UTF-8"# LC_NUMERIC 非货币的数字显示格式LC_NUMERIC="en_US.UTF-8"#LC_TIME 时间和日期格式LC_TIME="en_US.UTF-8"# LC_COLLATE定义该环境的排序和比较规则LC_COLLATE="en_US.UTF-8"#LC_MONETARY货币格式LC_MONETARY="en_US.UTF-8"#LC_MESSAGES提示信息的语言。另外还有一个LANGUAGE参数,它与LC_MESSAGES相似,但如果该参数一旦设置,则LC_MESSAGES参数就会失效。LANGUAGE参数可同时设置多种语言信息,如LANGUANE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"。LC_MESSAGES="en_US.UTF-8"LC_PAPER="en_US.UTF-8"LC_NAME="en_US.UTF-8"LC_ADDRESS="en_US.UTF-8"LC_TELEPHONE="en_US.UTF-8"LC_MEASUREMENT="en_US.UTF-8"LC_IDENTIFICATION="en_US.UTF-8"#LC_ALL它是一个宏,如果该值设置了,则该值会覆盖所有LC_*的设置值。注意,LANG的值不受该宏影响。LC_ALL=en_US.UTF-8
locale -a你可以看看目前系统里支持的字符集,如果不支持,还要安装奥。当前.bash_profile的设置是
#中文显示if [ 1 -eq 1 ];thenLANG=zh_CN.GB18030LANGUAGE=zh_CN.GB18030:zh_CN.GB2312:zh_CNexport LANG LANGUAGEfi#英文显示 if [ 0 -eq 1 ];thenexport LANGUAGE=en_US.UTF-8export LANG=en_US.UTF-8export LC_ALL=en_US.UTF-8fi
字符编码基础知识
最初的计算机字符编码是通过ASCII来编码的,是现今最通用的单字节编码系统,使用7位二进制数来表示所有的字母、数字、标点符号及一些特殊控制字符,作为美国编码标准来使用。
ISO-8859-1编码是单字节编码,向下兼容ASCII,是许多欧洲国家使用的编码标准。其编码范围是0x00-0xFF,0x00-0x7F之间完全和ASCII一致,0x80-0x9F之间是控制字符,0xA0-0xFF之间是文字符号。
Unicode,学名是Universal Multiple-Octet Coded Character Set(简称UCF),与ISO-8859-1标准兼容。由国际组织标准制定,作为一种国际语言编码标准,支持超过十万个字符,涵盖世界数十种文字系统,是一种通用字符编码标准。很多技术,如Java编程语言、现代操作系统都采用了Unicode编码。
UTF-8/UTF-16等则是对Unicode进行了编码,是其一种实现方式。UTF-8(8-bit Unicode Transformation Format),是一种变长的编码方式,它以8位为码元,用1-6个码元对Unicode进行编码,对英文字符使用单字节编码,对中文编码用到三个字节来编码。UTF-16(16-bit Unicode Transformation Format)是用16位为码元,用1个或2个码元对Unicode进行编码。
utf-16将字符集划分为基本多文中平面和辅助平面,基本多文中平面中的字符与Unicode是一致的,不需要转换;处在辅助平面中的码元(如一些拼音文字或者中日韩表意文字的扩充),需要2个码元进行编码。
GB2312是国家制定的汉字编码标准,使用双子节进行编码,共收入6763个汉字和682个非汉字图形字符。GBK即对国标编码的扩展,在GB2312的基础上进行扩展形成的,使用双子节编码方式,共收入21003个汉字,从而大大满足了汉字使用的需要。
总结:unicode是国际通用编码标准,可以表示全世界的字符,但其字符集也是最复杂、占用空间最大的。开发者可以根据需要进行选择编码方式。
参考文献
原文:https://blog.csdn.net/shijing_0214/article/details/50908144 关于文件编码的一些命令
查看文件的编码:编码为GB2512
#检查文件的编码 enca test1.txt enca -L zh_CN fileName Simplified Chinese National Standard; GB2312 CRLF line terminators
转换文件编码
enca -L 当前语言 -x 目标编码 文件名 enca -L zh_CN -x utf-8 * //例如要把当前目录下的所有文件都转成utf-8 enca -L zh_CN -x UTF-8 file //将文件编码转换为"UTF-8"编码 enca -L zh_CN -x UTF-8 < file1 > file2 //如果不想覆盖原文件可以这样enca -L zh_CN -x utf8quadTest.c
乱码-ubuntu下文档的文件名到windows下变为___下划线
现象:Windows下编辑过的中文文档,Ubuntu下会显示乱码。
原因:两个操作系统使用的编码不同。Ubuntu下使用的编码是utf-8,而Windows使用的是gb18030。
ubuntu16.04解决文件中文乱码问题
1、查看当前系统使用的字符编码
~$ localeLANG=en_USLANGUAGE=en_US:LC_CTYPE="en_US"LC_NUMERIC="en_US"LC_TIME="en_US"LC_COLLATE="en_US"LC_MONETARY="en_US"LC_MESSAGES="en_US"LC_PAPER="en_US"LC_NAME="en_US"LC_ADDRESS="en_US"LC_TELEPHONE="en_US"LC_MEASUREMENT="en_US"LC_IDENTIFICATION="en_US"LC_ALL=
2、查看当前系统支持的字符集
:~$ locale -aCC.UTF-8en_USen_US.iso88591en_US.utf8POSIX
3、查看locale文件
:~$ cat /etc/default/locale# File generated by update-localeLANG="en_US"LANGUAGE="en_US:"
解决:
1、执行locale-gen zh_CN.UTF-8拉取中文编码(需要root权限)
:~$ locale-gen zh_CN.UTF-8sed: couldn't open temporary file /etc/sedMLPzNn: Permission denieddeployer@RSLog026:~$ sudo su[sudo] password for deployer:root@RSLog026:/home/deployer# locale-gen zh_CN.UTF-8Generating locales (this might take a while)...zh_CN.UTF-8... done
2、查看现在系统支持的字符集,发现多了zh_*等中文字符集
:~$ locale -aCC.UTF-8en_USen_US.iso88591en_US.utf8POSIXzh_CNzh_CN.gb2312zh_CN.gbkzh_CN.utf8
3、修改文件/etc/default/locale(必须要改,,开始还以为不该也行,发现如果不改这个文件,需要执行两遍第四步操作)
当前文件:~$ cat /etc/default/locale# File generated by update-localeLANG="en_US"LANGUAGE="en_US:"改成如下::~$ cat /etc/default/locale# File generated by update-localeLANG=zh_CN.UTF-8#LANGUAGE="en_US:"
4、执行sudo dpkg-reconfigure locales命令,由于不能截图,这里语言描述下了。
选中zh_CN GB2312,zh_CN.GBK GBK,zh_CN.UTF-8 UTF-8 按空格就是选中,然后tab键到ok,点击ok以后会跳转到下一界面,选中zh_CN.UTF-8,,然后ok就可以了
接下来重新打开会话就能正常使用中文了,不用重启系统。
查看当前系统使用的字符编码
locale LANG=zh_CN.UTF-8LANGUAGE=zh_CN:en_US:enLC_CTYPE="zh_CN.UTF-8"LC_NUMERIC=zh_CN.UTF-8LC_TIME=zh_CN.UTF-8LC_COLLATE="zh_CN.UTF-8"LC_MONETARY=zh_CN.UTF-8LC_MESSAGES="zh_CN.UTF-8"LC_PAPER=zh_CN.UTF-8LC_NAME=zh_CN.UTF-8LC_ADDRESS=zh_CN.UTF-8LC_TELEPHONE=zh_CN.UTF-8LC_MEASUREMENT=zh_CN.UTF-8LC_IDENTIFICATION=zh_CN.UTF-8LC_ALL=
查看当前系统支持的字符集
locale -aCC.UTF-8en_AGen_AG.utf8en_AU.utf8en_BW.utf8en_CA.utf8en_DK.utf8en_GB.utf8en_HK.utf8en_IE.utf8en_ILen_IL.utf8en_INen_IN.utf8en_NGen_NG.utf8en_NZ.utf8en_PH.utf8en_SG.utf8en_US.utf8en_ZA.utf8en_ZMen_ZM.utf8en_ZW.utf8POSIXzh_CN.utf8zh_SG.utf8
执行locale-gen zh_CN.UTF-8拉取中文编码
sudo locale-gen zh_CN.*Generating locales (this might take a while)... zh_CN.GB18030... done zh_CN.GB2312... done zh_CN.GBK... done zh_CN.UTF-8... doneGeneration complete.
查看现在系统支持的字符集,发现多了zh_*等中文字符集
locale -aCC.UTF-8en_AGen_AG.utf8en_AU.utf8en_BW.utf8en_CA.utf8en_DK.utf8en_GB.utf8en_HK.utf8en_IE.utf8en_ILen_IL.utf8en_INen_IN.utf8en_NGen_NG.utf8en_NZ.utf8en_PH.utf8en_SG.utf8en_US.utf8en_ZA.utf8en_ZMen_ZM.utf8en_ZW.utf8POSIXzh_CNzh_CN.gb18030zh_CN.gb2312zh_CN.gbkzh_CN.utf8zh_SG.utf8
乱码-windows下文档移到linux下文件显示乱码
上面的方法可以实现在gedit软件下,正确显示,但是在vim文档下显示如下
°üº¬µÄÐéÄâ»úID£¬¼°Æä·Ö²¼·½Ê½
但在gedit软件中打开实际上是
包含的虚拟机ID,及其分布方式
查看文件的编码方式
file debug_tran.cppdebug_tran.cpp: C++ source, ISO-8859 text, with CRLF line terminators
由于我的vim 配置里面显示了文件的格式,我的vim显示如下
doslatin1cpp
经过查询可知:Latin1是ISO-8859-1的别名,有些环境下写作Latin-1。此字符集支持部分于欧洲使用的语言,所以中文显示乱码。
可以采用下面的命令转换
iconv -f gbk -t utf8 debug_tran.cpp.gbk > debug_tran.cpp.utf
查找新产生的文件
file debug_tran.cpp.utf debug_tran.cpp.utf: C++ source, UTF-8 Unicode text, with CRLF line terminators
使用下面的语句查看具体选项
iconv --help
在windows中打开linux文档建议使用notepad++文件打开,在里面可以修改不同编码。
乱码分类表

今天关于《解决Windows电脑文件乱码问题的技巧》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于Windows,电脑,文件乱码的内容请关注golang学习网公众号!
分析和解决阿里云Windows系统的PHP兼容性问题
- 上一篇
- 分析和解决阿里云Windows系统的PHP兼容性问题
- 下一篇
- Goroutines 和 C# async/await 都实现了并发编程
-
- 文章 · 软件教程 | 1天前 | go · vs code · 软件教程 · 测试任务 · tasks.json · VS Code 测试任务 终端输出 Go插件 Go测试 tasks.json 问题面板
- VS Code 怎么给 Go 项目配置测试任务:tasks.json 运行与结果验收
- 501浏览 收藏
-
- 文章 · 软件教程 | 2天前 | 开发工具 · vs code · profiles · 软件教程 · 配置同步 · 软件教程 Visual Studio Code VS Code Profiles 配置档 导出配置 导入配置
- VS Code Profiles 怎么用:创建、导出和导入开发配置档
- 185浏览 收藏
-
- 文章 · 软件教程 | 2天前 | 开发环境 · windows terminal · 软件教程 · 终端工具 · Ubuntu PowerShell 软件教程 Windows Terminal 默认配置文件 起始路径
- Windows Terminal 默认启动配置怎么改:PowerShell、Ubuntu 和起始路径设置
- 495浏览 收藏
-
- 文章 · 软件教程 | 2天前 | Windows · 软件教程 · PowerToys · PowerRename · 批量重命名 · PowerToys 批量重命名 软件教程 PowerRename Windows重命名 文件改名
- PowerToys PowerRename 批量重命名怎么用:先看预览再应用
- 413浏览 收藏
-
- 文章 · 软件教程 | 2天前 | [] · []
- DBeaver 导入 CSV 到数据库怎么做:字段映射、预览校验和结果核对
- 217浏览 收藏
-
- 文章 · 软件教程 | 1星期前 | 环境变量 · postman · 软件教程 · 接口测试 · 导入导出 · 环境变量 Collection JSON文件 导入导出 Postman Environment 接口集合
- Postman 导出和导入接口集合:Collection 与 Environment 迁移检查
- 308浏览 收藏
-
- 文章 · 软件教程 | 1星期前 | PNG · diagrams.net · 软件教程 · draw.io · 流程图 · 透明背景 流程图 软件教程 Diagrams.net PNG导出 draw.io 图片归档
- diagrams.net 导出高清 PNG:透明背景、缩放比例和回导核对流程
- 130浏览 收藏
-
- 文章 · 软件教程 | 1星期前 | 版本控制 · source control · 软件教程 · VS Code教程 · Git冲突 · VS Code 软件教程 Git冲突 Source Control Merge Editor 提交核对
- VS Code 解决 Git 合并冲突:从 Source Control 到提交核对
- 395浏览 收藏
-
- 文章 · 软件教程 | 1星期前 | network · Har · 软件教程 · Chrome DevTools · 前端调试 · 软件教程 Chrome DevTools HAR文件 Network面板 前端排查
- Chrome DevTools 导出 HAR 文件:从 Network 捕获到脱敏核对
- 410浏览 收藏
-
- 文章 · 软件教程 | 1星期前 | 开发工具 · vs code · 软件教程 · 设置排错 · VS Code 搜索排除 search.exclude files.exclude Use Exclude Settings
- VS Code 搜索排除不生效:search.exclude 和 Use Exclude Settings 设置排查
- 256浏览 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 485次学习
-
- ljg-skills
- ljg-skills 是李继刚开源的 AI 技能与提示词集合,面向大模型使用者整理了一批可复用的 prompt、角色设定和任务技能模板,适合用于学习提示词设计、搭建个人 AI 工作流和沉淀团队常用智能体能力。
- 4405次使用
-
- MELO音乐
- MELO音乐是一站式AI视频与音乐制作助手,对标suno, udio的高品质体验。提供伴奏生成、原创写词、无损导出、哼唱识曲、混音变声等全套音频与短视频编辑工具。无论是流行Kpop、电音说唱、民谣古风、摇滚儿歌还是商用轻音乐,MELO为你免费谱曲,轻松做同款!
- 4070次使用
-
- UniScribe
- UniScribe 是一款 AI 音视频转文字与内容整理工具,支持上传音频、视频文件或粘贴 YouTube 链接,自动生成转写文本、摘要、思维导图和关键问题,并支持多格式导出,适合会议记录、课程学习、访谈整理和内容创作复盘。
- 4054次使用
-
- 剧云
- 剧云是专业中文剧本创作平台,安全稳定运行十余年,集成AI编剧、剧本医生审核、人物小传、剧情关系图、大纲编写、多人协作、Word导入导出、版权管控功能,数据安全防护,轻松高效创作剧本。
- 4239次使用
-
- 万象有声
- 万象有声,一个专为有声创作者打造的新一代智能有声内容创作平台。平台提供专业的智能拆章、智能画本编辑、AI配音、AI生成音效、后期制作、智能对轨、智能审听等有声创作全流程工具,可以帮助创作者高效、低成本创作出引人入胜的有声作品。立即体验,让有声书制作更简单!
- 4211次使用
-
- VS Code 怎么给 Go 项目配置测试任务:tasks.json 运行与结果验收
- 2026-07-09 501浏览
-
- Windows 11 如何开启 HEIF 图片支持
- 2026-05-31 501浏览
-
- TikTok用户画像与付费订阅变现方法
- 2026-05-27 501浏览
-
- 学信网学历翻译件申请方法
- 2026-05-27 501浏览
-
- Windows 11 24H2 更新失败0x80070005解决方法
- 2026-05-26 501浏览

