脚本文件,放在/usr/bin或者/usr/local/bin里面。
#! /bin/sh
#只适合gb2132和gb18030两种情况;
#理论上采用输出不显示的方法,可以增加多种;
#
if语句等号两边要带空格,与方括号之间也要带空格(自我提醒,前面有一个脚本可能也是这个原因)
。
temp1=`iconv -f gb2132 $1 1>/dev/null 2>/dev/null && echo 'gb2132'`
if [ "$temp1" = 'gb2132' ] ; then
echo`iconv -f gb2132 -t utf-8 $1 -o "utf8-2312_$1" 1>/dev/null 2>/dev/null`
else
temp2=`iconv -f gb18030 $1 1>/dev/null 2>/dev/null && echo 'gb18030'`
if [ "$temp2" = 'gb18030' ] ; then
echo`iconv -f gb18030 -t utf-8 $1 -o "utf8-18030_$1" 1>/dev/null 2>/dev/null`
else
echo "不符合GB2312或者GB18030格式,未转换!"
fi
fi
可以放入自定义菜单中,对应的后缀填写*.txt;*.ini;*.cmd;*.bat;
菜单命令为:this.sh %n;注意不能用%f,因为%f是带有路径的,在前面加前缀是没办法的;
这个主要是针对windows系统的一些编码字符乱码,所以对其他文件没有必要起作用;
如果直接在终端使用命令的,应该是这样:(f为源格式,t为目标格式)
iconv -f gb2132 -t utf-8 sourcefilename -o outputfilename