我们从windows系统上传文件到Linux系统中,经常会遇到中文乱码问题。通常,这是因为Windows的字符编码为GBK,而Linux系统的字符集是UTF-8引起的。
为了模拟上述情况,我先在Windows中,创建以GBK编码的文件testGBK.txt,然后上传至CentOS系统。最后,我将转换testGBK.txt的字符编码,解决乱码问题。
一、创建testGBK.txt
打开Notepad++,随便写几行中文,然后指定为GBK编码,保存。然后上传至CentOS。
二、在CentOS中,testGBK.txt为乱码
并且,其文件编码已经是latin1,即ISO-8859编码。Latin1是ISO-8859-1的别名。使用file命令可以印证。
三、乱码产生的原因
之所以会有乱码问题,是因为文件的编码是GB2312,但在传输的过程中,因为传输工具用的字符编码是latin1,所以传输上去的文件已经被标识为latin1了。但testGBK.txt里面存放的却是GB2312编码的内容,而CentOS被告知是latin1编码,所以,CentOS就使用latin1的字符编码去解码,结果,当然是乱码。
四、解决乱码问题
使用iconv命令进行转码。具体如下:
#将GB2312的文件testGBK.txt转编码为UTF-8,并输出为:result1.txt
iconv -f GB2312 -t UTF-8 testGBK.txt -o result1.txt
结论:经过转码后,已经无乱码。
五、iconv的用法
用法: iconv [选项...] [文件...]
Convert encoding of given files from one encoding to another.
输入/输出格式规范:
-f, --from-code=NAME       原始文本编码
-t, --to-code=NAME         输出编码
信息:
-l, --list                 列举所有已知的字符集
输出控制:
-c                         从输出中忽略无效的字符
-o, --output=FILE          输出文件
-s, --silent               suppress warnings
--verbose              打印进度信息
-?, --help                 给出该系统求助列表
--usage                给出简要的用法信息
-V, --version              打印程序版本号
将GB2312编码的文件内容转换为UTF-8
iconv -f GB2312 -t UTF-8 file-name > new-file-name
将UTF-8编码的文件内容转换为GB2312
iconv -f UTF-8 -t GB2312 file-name > new-file-name
NOTE:
1.原始文本编码:指的是文本真实的编码,而不是Linux系统误认定的字符编码。如上例,file命令显示,testGBK.txt是ISO-8859编码,即西欧编码。但,文件真实的字符编码是GB2312,详见图1.
2.在做文件转码时,对重要的文件,需要做好备份工作。文件转码,有时候,是不可逆的。备份尤为重要。

2.解决Linux中文乱码问题相关推荐

  1. 解决Linux中文乱码

    解决Linux中文乱码 方法一:    修改/root/.bash_profile文件,增加export LANG=zh_CN.GB18030 对于其他用户,也必须相应修改该文件 使用该方法时putt ...

  2. linux php 中文乱码解决,Linux中文乱码如何解决

    刚开始使用Linux系统的时候,大家都会遇到一个问题,那就是终端输入命令回显的时候中文显示乱码.为什么会出现这样的问题呢?出现这样的问题,我们应该怎么去解决它好呢?有何解决方法?今天,小编就和大家说一 ...

  3. 解决Linux中文乱码问题

    为什么80%的码农都做不了架构师?>>>    在首次安装centos时,如果选择的是英文,那么系统将不安装中文支持包,这样就导致了中文显示为乱码(小方框)--.   网上找了各种办 ...

  4. 解决putty中文乱码并远程访问linux界面功能

    1,解决putty中文乱码 打开putty主程序,选择window-〉Appearance-〉Font settings-〉Change...,选择汉字字体为宋体或楷体 在window-〉Appear ...

  5. linux mysql 乱码怎么解决_MySQL_linux中解决mysql中文乱码方法,改默认编码:/etc/init.d/my - phpStudy...

    linux中解决mysql中文乱码方法 改默认编码: /etc/init.d/mysql start (stop) 为启动和停止服务器 /etc/mysql/ 主要配置文件所在位置 my.cnf /v ...

  6. mysql linux 中文乱码怎么解决_如何解决mysql linux 中文乱码的问题

    解决mysql linux中文乱码的方法: 1.查看mysql的默认字符集#mysql -u root - p #(输入密码) mysql> show variables like 'chara ...

  7. suse linux乱码,轻松解决Suse中文乱码问题

    随着我们学习Suse linux的深入,我们也面临着很多问题,今天所要讲的是Suse中文乱码问题,Suse linux有很多的知识需要我们了解,以便我们能更好的应用到学习生活中.我研究了一下Suse中 ...

  8. linux freemind字体,解决freemind中文乱码

    出自Linux Wiki 提示:此文已超过 9 年(3299 天)未更新,如发现内容过时或有误,欢迎改进:) 解决freemind中文乱码 由于 Freemind 要应用到 Java 运行时环境,显示 ...

  9. deepin linux中文乱码_Linux中文乱码如何解决?

    刚开始使用Linux系统的时候,大家都会遇到一个问题,那就是终端输入命令回显的时候中文显示乱码.为什么会出现这样的问题呢?出现这样的问题,我们应该怎么去解决它好呢?有何解决方法?今天,小编就和大家说一 ...

  10. linux微软雅黑乱码,CentOS安装微软雅黑,解决drawImage中文乱码相关问题

    CentOS安装微软雅黑,解决drawImage中文乱码相关问题 使用Graphics的drawString方法向图片上添加汉字时候,Windows是没问题的,在Linux上中文总是乱码,小方块,之前 ...

最新文章

  1. 【转】VSS的配置和使用
  2. 文章内容页调用所属栏目地址的标签
  3. 科大星云诗社动态20210518
  4. python实现高效率的排列组合算法
  5. 8.元组tup.rs
  6. 前端学习(2933):vue中的循环语句
  7. c语言 函数指针开销,函数指针是否使程序变慢?
  8. 【计算机组成原理】双端口RAM和多模块存储器
  9. 重读TCP/IP(2)之链路层
  10. xcode打包ipa_codesign签名ipa
  11. 烟花php,基于HTML5 canvas的逼真烟花特效插件jquery.fireworks.js
  12. Android videoView闪屏
  13. AES加密解密C语言实现
  14. 微信公众号开发【一】 菜单获取与设置
  15. 串口的空闲中断+DMA接收(附F4代码)
  16. 百度地图根据经纬度判断点是否在行政区内
  17. HR团队如何提升效率?人力资源RPA给你答案
  18. wireshark抓取常用报文协议过滤法则大全
  19. 测试模型是出现:RuntimeErrorError(s) in loading state_dict for MIMO-UNet
  20. windows下安装和使用geany

热门文章

  1. Linux下通过iwconfig命令连接无线
  2. Anaconda完全卸载教程(Windows10系统)
  3. Charles 最新版(Charles 4.1.4 ) 破解注册
  4. 38个免费匿名临时邮箱服务
  5. 计算机画图工具介绍PPT,怎么用思维导图制作PPT课件,迅捷画图软件讲解
  6. error:LNK2005解决
  7. AI人工智能(调包侠)速成之路十四(中国象棋AI网络机器人:AI技术综合应用实现)
  8. Java常量池储存什么_JAVA常量池中存储的常量是什么
  9. Stata数据处理:清洗CFPS数据库
  10. Android 微信、QQ、微博分享问题汇总