在Linux系统下经常会遇到从网上下载的文件,打开是乱码的情况,尤其是含有中文字符的txt文件或者是一些后缀为 .srt、.ass的字幕文件,其原因大多是因为这些文件的编码格式为gb18030编码格式,而这种文件的编码格式虽然在windows下可以直接打开,在linux下却会出现奇奇怪怪的乱码情况。作为日常使用ubuntu系统的伪技术宅,碰到文件打开是乱码的情况不说遇到100次,也至少遇到了有50次,对于这种问题的解决方案也颇有心得。

说是解决方案,听起来好像很复杂,其实真正处理起来,不过是一行语句的问题,先附上语句:

sudo iconv -f "gb18030" -t "utf-8" original_filename > new_filename

看,其实很简单,就是修改一下original_filenamenew_filename为自己要更改的文件即可,简单地说就是把原有的gb18030编码格式的文件转化为utf-8编码格式的文件。

到此其实可以说,解决方案基本上已经ok了,但是近来因为暑假瘫在家,经常刷电影,就发现呀,有时候字幕下载下来,尤其是那种压缩包的字幕解压后是一个文件夹,可气的是一个文件夹的字幕都是乱码的,这样一个文件一个文件地去转码,烦都烦死了。作为一个不太称职的码农,我也是有想要化繁为简的冲动的,于是自己从网上扒了些bash脚本的编写教程,东拼西凑,整了个批量转换一个文件夹内的乱码文件的脚本,脚本代码量比较少,就在此附上了:

#!/bin/bash
# batch conv "gb18030"-typed file to "utf-8"-typed filepath=$1
# avoid filename having spaces
files=$(ls $path | tr " " "\?")
for filename in $files
dofile=${path}"/"${filename}# split string by '.'OLD_IFS="$IFS"IFS="."array=($filename)IFS="$OLD_IFS"array_length=${#array[@]}if [ $array_length -le 1 ]thenecho "Fault file"continuefi# obtain all substring before the last '.'part1=""for (( i=0; i<$((array_length-1)); i++ ))do part1=$part1${array[$i]}"."donepart1=${part1%?} # delete the last character '.'# group new filenamefilename_new=${path}"/"$part1"-new."${array[array_length - 1]}echo $filename_newsudo iconv -f "gb18030" -t "utf-8" $file > $filename_new
done

执行时,只需执行

bash xxxx.sh dir_path # xxx.sh是脚本名称,dir_path是文件夹的路径

即可。

Linux系统下文件字体乱码的解决方案相关推荐

  1. linux 默认文件属性,linux系统下文件的默认权限以及隐藏属性的作用

    [摘要] 操作系统(Operating System,简称OS)是管理计算机硬件与软件资源的计算机程序.操作系统需要处理如管理与配置内存.决定系统资源供需的优先次序.控制输入设备与输出设备.操作网络与 ...

  2. Linux系统下文件与目录操作讲解

    Linux系统下文件与目录操作 在Linux系统中有一句话叫做,一切皆文件.上节我们说的I/O操作,对于普通I/O操作,都是打开.读写.关闭.这节我们通过stat结构体来了解文件的一些基本信息和本质特 ...

  3. linux系统下文件查找

    在我们实际应用中,经常需要查找某个特定的文件,或者根据文件的某个特定属性进行查找,今天小菜就给大家分享一下,linux系统下文件查找的两大利器:  1,locate:非实时查找(基于预先生成的数据库查 ...

  4. Linux系统下文件与目录操作

    Linux系统下文件与目录操作  与其它操作系统一样,在Linux系统下用户的数据和程序也是以文件的形式保存的.所以在使用Linux的过程中,是经常要对文件与目录进行操作的.现在我们就以一个Windo ...

  5. linux 文件目录操作,Linux系统下文件与目录操作

    与其它操作系统一样,在Linux系统下用户的数据和程序也是以文件的形式保存的.所以在使用Linux的过程中,是经常要对文件与目录进行操作的.现在我们就以一个Window用户的立场来学习一下Linux下 ...

  6. linux系统下文件的上传和下载(rz、sz)

    linux系统下的rz.sz上传和下载 rz 是从本地上传文件的时候用的, sz 相当于把Linux 服务器上的文件 下载到 本地. 通过这两个命令就可以把 Windows 和Linux 的文件 进行 ...

  7. linux服务器编码怎么查看器,Linux系统下文件编码的查看与转换方法

    如果你需要在Linux 中操作windows下的文件,那么你可能会经常遇到文件编码转换的问题.Windows中默认的文件格式是GBK(gb2312),而Linux一般都是UTF-8.下面介绍一下,在L ...

  8. linux系统下文件命令详解

    /etc 目录下包含的用户信息文件有: 3.1.0 passwd: 用户库文件 用户名 UID,GID 和工作目录都在此文件中 Shadow:存放用户口令的文件,每个用户的 口令加密后都放在此文件中 ...

  9. Linux 系统下文件压缩解压

    Linux 系统压缩&解压文件 压缩永远是针对于一个独立文件进行的,一个文件夹(某目录下文件)想要进行压缩首先要进行打包,打包成一个文件,所以在 Windows 下常说的压缩是打包与压缩的总称 ...

最新文章

  1. 话里话外:新顾问答疑解惑对话大公开
  2. WCF之自定义信道工厂,信道监听器
  3. canal能监控多个mysql_learning-mysql-canal
  4. [linux] SIGPIPE信号处理
  5. ML机器学习导论学习笔记
  6. Java BigInteger类| bitCount()方法与示例
  7. DOM全屏Api requestFullscreen
  8. 电商美工忙不停,年货节海报素材模板,拯救电商汪
  9. 林业大学计算机专业排名2019,2019北京林业大学专业排名(4页)-原创力文档
  10. TCP/IP报文头部结构
  11. APP兼容性测试如何测试?
  12. 用“讲故事”的方式,带你认识Python编码问题起源和发展!
  13. cad缩放_CAD中的AL是什么指令? 怎么操作哦
  14. egret引擎p2物理引擎(2) - 小球碰撞地面搞笑的物理现象
  15. 数独游戏 | c++ | BFS
  16. opencv实践中遇到的问题
  17. u盘插入电脑,提示 无法识别的usb设备
  18. Python运维常用的脚本,提高工作效率就靠它了
  19. 2017计算机应用考研大纲,2017年计算机考研大纲
  20. 独角兽扎堆新加坡,Shopee、Lazada们究竟看见了怎样的未来?

热门文章

  1. vue2.0 通过ip访问自己运行的项目
  2. I - 查找练习 hash——出现过的数字(水题A的)
  3. 基于Android的百度地图开发
  4. Caffe代码导读(0):路线图
  5. Python-OpenCV 处理视频(四): 运动检测
  6. 图片转LaTex公式神器软件
  7. 基于 Jenkins 快速搭建持续集成环境
  8. JAVA正则表达式:Pattern类与Matcher类详解
  9. 漫谈:机器学习中距离和相似性度量方法
  10. 关于Linux命令ls的一道笔试题