Linux gbk文件批量转utf-8

这篇博客讲述了作者在将Android程序从Windows迁移到Linux时遇到的编码问题,由于Linux默认使用UTF-8编码导致GBK编码的文件显示乱码。作者选择通过编写脚本来批量将GBK文件转换为UTF-8编码,详细介绍了脚本的实现思路和具体命令,包括文件遍历、解码和编码转换,并提到了输出重定向。最后,作者分享了创建可执行脚本的步骤。
部署运行你感兴趣的模型镜像

背景:

写android程序,在windows下默认创建的是gbk编码的,后来将程序倒腾到Linux下,发现所有中文字符全部乱码!

原来linux的默认编码是utf-8(我是linux小白)!

一个一个复制粘贴的话也不行,因为在linux下打开的java文件本身就是utf-8编码,已经乱码了抓狂

更改linux默认编码?原谅我小白!网上搜索了一会,Linux版本这么多,命令什么的多少有点区别,我这种小白是搞不定的(以后有需求了再说)!

后来想到了脚本!

本身是程序员,写个脚本应该还可以吧!无非下面的思路:

1.遍历文件夹下的所有文件,当然要包括子文件夹

2.找到文件后用gbk解码,然后用utf8编码保存

思路有了就好办了!

成果如下:

#!/bin/bash  
function ergodic(){  
    for file in ` ls $1 `  
    do  
        if [ -d $1"/"$file ]
		  then  
		  mkdir $2"/"$file
                  ergodic $1"/"$file  $2"/"$file		
        else  
		 iconv -f gbk -t utf8 $1"/"$file > $2"/"$file
        fi  
    done  
}  

IN_PATH="/home/myName/桌面/in"  
OUT_PATH="/home/myName/桌面/out"
ergodic $IN_PATH $OUT_PATH

以上!

好吧,对语句稍微解释一下,也免得以后自己再忘了害羞

1.for in :循环,可以循环数字,字符串等等

2.[ ] 部分是判断表达式,-d 表示判断是否是目录(directory)

3.iconv [选项...] [文件...]

   -f :-from-code=名称 原始文本编码

   -t, -to-code=名称 输出编码

4. ">" 输出重定向,内容输出到指定的文件中,如果文件存在, 则原来的内容被清空, 不存在则创建文件

    另外:">>"是把输出追加到文件中, 如果文件存在, 追加到末尾, 不存在则创建文件

感谢网上所有前辈的贡献!

-------------------------------------------------

关于创建脚本:

1.新建一个空白文档

2.编辑脚本

3.使脚本可执行:chmod +x [文件]



 

您可能感兴趣的与本文相关的镜像

EmotiVoice

EmotiVoice

AI应用

EmotiVoice是由网易有道AI算法团队开源的一块国产TTS语音合成引擎,支持中英文双语,包含2000多种不同的音色,以及特色的情感合成功能,支持合成包含快乐、兴奋、悲伤、愤怒等广泛情感的语音。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值