UTF8编码与GB2312编码区分为UTF8编码的SQL,
脚本会出现乱码
错误SQLPLUS,那么它将需要
转换成GB2312编码UTF8编码转换,但很麻烦,萧边在这里教你如何在linux编码批量UTF8转换GB2312编码。
背景 我在utf8编码Oracle SQL脚本SQLPlus的批量导入,因为不懂如何
设置SQLPlus
识别UTF8格式,产生的混淆,错误的错误发生,不能继续在谷歌
工作,在无果的
情况只有想办法变换编码。
由于
文件数量众多,手工转换太麻烦了。因此我们考虑用脚本进行批
处理转换。幸运的是,互联网上有更多的脚本。唯一的麻烦是UTF8 BOM标签。
内容:
代码如下:
# /斌/狂欢!
循环在`找到。- F型名称*。sql
打印`做
echo $环
MV F环loop.tmp美元美元
Dos2unix $loop.tmp
file_check_utf8 = ‘file_check_utf8.logrsquo;
sed -n ‘1lrsquo;loop.tmp美元,file_check_utf810美元。如果grep ‘^ 357 273 277rsquo;file_check_utf8美元, / dev /空2, 111。
回声‘UTF-8 bomrsquo;
SED-N-E ‘1s / / /我^ ..;E ‘W intermediate.txtrsquo;loop.tmp14美元。iconv -f UTF-8 -t GB2312啊
RM -射频loop.tmp美元
elif iconv -f UTF-8 -t GB2312 loop.tmp美元 / dev /空2118。然后
utf-8rsquo回声;
iconv -f UTF-8 -t GB2312 O环loop.tmp21美元美元。RM -射频loop.tmp美元
其他的
回声‘ANSIrsquo;
MV F环loop.tmp美元美元
FI
RM -射频file_check_utf8美元
对unix2dos #仿真,
文本文件的最后一行必须有28的要求。SED的N - E的换行; / / r / grsquo;E W ’‘loop.tmp loop29美元美元。MV F环loop.tmp美元美元
多恩
# /斌/狂欢!
循环在`找到。- F型名称*。sql打印`做
echo $环
MV F环loop.tmp美元美元
dos2unix loop.tmp美元
file_check_utf8 = ‘file_check_utf8.logrsquo;
sed -n ‘1lrsquo;loop.tmp美元,file_check_utf810美元。如果grep ‘^ 357 273 277rsquo;file_check_utf8美元, / dev /空2, 111。
回声‘UTF-8 bomrsquo;
SED-N-E ‘1s / / /我^ ..;E ‘W intermediate.txtrsquo;loop.tmp14美元。iconv -f UTF-8 -t GB2312啊
RM -射频loop.tmp美元
elif iconv -f UTF-8 -t GB2312 loop.tmp美元 / dev /空2118。然后
utf-8rsquo回声;
iconv -f UTF-8 -t GB2312 O环loop.tmp21美元美元。RM -射频loop.tmp美元
其他的
回声‘ANSIrsquo;
MV F环loop.tmp美元美元
FI
RM -射频file_check_utf8美元
对unix2dos #仿真,文本文件的最后一行必须有28的要求。SED的N - E的换行; / / r / grsquo;E W ’‘loop.tmp loop29美元美元。MV F环loop.tmp美元美元
多恩
解释
1、处理UTF8的BOM,我没有找到一个好办法。最后,我用sed + grep来决定如果第一个三字节是 357 273 277,然后该文件必须是UTF8,然后使用sed
删除三字节,然后把它。
2,为了避免重复或遗漏,脚本使用iconv转换文件没有BOM。转换成功,表明该文件是UTF8,否则是ANSI,即GB2312。
3,关于最后的sed
命令,那是因为我的
系统不unix2dos命令,所以它是
模拟这样我可以查看和
编辑方便在Windows。
以上是将UTF8编码在Linux下的编码GB2312的方式。经过变换后,我们可以
解决随机码等问题。您可以使用命令
镜像的批处理转换,您了解了吗