我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Linux下怎么将UTF8编码批量转换成GB2312编码

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Linux下怎么将UTF8编码批量转换成GB2312编码

这篇文章主要介绍“Linux下怎么将UTF8编码批量转换成GB2312编码”,在日常操作中,相信很多人在Linux下怎么将UTF8编码批量转换成GB2312编码问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux下怎么将UTF8编码批量转换成GB2312编码”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

  背景

  本人在使用oracle的sqlplus批量导入UTF8编码的sql脚本时,由于不了解如何设置让sqlplus识别UTF8格式,导致出现乱码、错行等错误,而使工作无法继续,在google无果的情况下只好想办法转换编码。

  由于文件较多,手动转换太麻烦,于是想到用脚本批量转换,幸好网上相关脚本比较多,实现起来唯一的麻烦是UTF8的BOM标记。

  内容:

  代码如下:

  #!/bin/bash

  for loop in `find 。 -type f -name “*.sql” -print`do

  echo $loop

  mv -f $loop $loop.tmp

  dos2unix $loop.tmp

  file_check_utf8=‘file_check_utf8.log’

  sed -n ‘1l’ $loop.tmp 》$file_check_utf810. if grep ‘^\\357\\273\\277’ $file_check_utf8 》/dev/null 2》&111. then

  echo ‘UTF-8 BOM’

  sed -n -e ‘1s/^.。。//’ -e ‘w intermediate.txt’ $loop.tmp14. iconv -f UTF-8 -t GB2312 -o $loop intermediate.txt15. rm -rf intermediate.txt

  rm -rf $loop.tmp

  elif iconv -f UTF-8 -t GB2312 $loop.tmp 》/dev/null 2》&118. then

  echo ‘UTF-8’

  iconv -f UTF-8 -t GB2312 -o $loop $loop.tmp21. rm -rf $loop.tmp

  else

  echo ‘ANSI’

  mv -f $loop.tmp $loop

  fi

  rm -rf $file_check_utf8

  #模拟unix2dos,要求文本文件最后一行必须有换行符28. sed -n -e ‘s/$/\r/g’ -e ‘w ’$loop.tmp $loop29. mv -f $loop.tmp $loop

  done

  #!/bin/bash

  for loop in `find 。 -type f -name “*.sql” -print`do

  echo $loop

  mv -f $loop $loop.tmp

  dos2unix $loop.tmp

  file_check_utf8=‘file_check_utf8.log’

  sed -n ‘1l’ $loop.tmp 》$file_check_utf810. if grep ‘^\\357\\273\\277’ $file_check_utf8 》/dev/null 2》&111. then

  echo ‘UTF-8 BOM’

  sed -n -e ‘1s/^.。。//’ -e ‘w intermediate.txt’ $loop.tmp14. iconv -f UTF-8 -t GB2312 -o $loop intermediate.txt15. rm -rf intermediate.txt

  rm -rf $loop.tmp

  elif iconv -f UTF-8 -t GB2312 $loop.tmp 》/dev/null 2》&118. then

  echo ‘UTF-8’

  iconv -f UTF-8 -t GB2312 -o $loop $loop.tmp21. rm -rf $loop.tmp

  else

  echo ‘ANSI’

  mv -f $loop.tmp $loop

  fi

  rm -rf $file_check_utf8

  #模拟unix2dos,要求文本文件最后一行必须有换行符28. sed -n -e ‘s/$/\r/g’ -e ‘w ’$loop.tmp $loop29. mv -f $loop.tmp $loop

  done

  解释

  1.处理UTF8的BOM,本人没有找到好的办法,最后用sed+grep判断了一下,如果前三个字节是\\357\\273\\277,则文件必定是UTF8,用sed去掉这三个字节再转换

  2.为了避免重复或者遗漏,脚本中用iconv对没有BOM的文件尝试转换了一把,转换成功说明文件是UTF8,否则说明是ANSI也就是GB2312

  3.关于最后的sed命令,那是因为本人的系统上没有unix2dos命令,所以进行了模拟,目的是为了方便自己在windows下查看和编辑

到此,关于“Linux下怎么将UTF8编码批量转换成GB2312编码”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Linux下怎么将UTF8编码批量转换成GB2312编码

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Linux下怎么将UTF8编码批量转换成GB2312编码

这篇文章主要介绍“Linux下怎么将UTF8编码批量转换成GB2312编码”,在日常操作中,相信很多人在Linux下怎么将UTF8编码批量转换成GB2312编码问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”L
2023-06-13

如何用dreamweaver将gb2312转utf8编码互相转换

这篇文章主要讲解了“如何用dreamweaver将gb2312转utf8编码互相转换”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何用dreamweaver将gb2312转utf8编码互相
2023-06-08

怎么用php将所有编码转换为utf8

这篇文章主要介绍“怎么用php将所有编码转换为utf8”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么用php将所有编码转换为utf8”文章能帮助大家解决问题。一、什么是编码转换?编码转换是把一个
2023-07-05

php 怎么将其他编码 转utf8

php将其他编码转成utf8的方法:1、创建一个PHP示例文件;2、找出字符串本身的编码;3、通过mb_convert_encoding转换为utf-8编码即可。
2016-03-31

批量转换目录下文件编码的shell脚本代码

一例批量转换目录下文件编码的shell脚本代码。 需求描述:由于从window转linux过来,很多原来win下的gbk文件需要转换成utf8。 以下脚本仅判断非utf8文件转换成utf8文件,并且默认非utf8文件为gbk,如果文件类型不
2022-06-04

vbs脚本怎么实现批量转换文件编码

这篇文章主要介绍“vbs脚本怎么实现批量转换文件编码”,在日常操作中,相信很多人在vbs脚本怎么实现批量转换文件编码问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vbs脚本怎么实现批量转换文件编码”的疑惑有所
2023-06-08

PHP5.2怎么将图片转换为Base64编码

这篇文章主要讲解了“PHP5.2怎么将图片转换为Base64编码”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHP5.2怎么将图片转换为Base64编码”吧!在开发网页时,我们经常需要嵌入
2023-07-06

怎么进行Linux下文件编码格式转换

这篇文章跟大家分析一下“怎么进行Linux下文件编码格式转换”。内容详细易懂,对“怎么进行Linux下文件编码格式转换”感兴趣的朋友可以跟着小编的思路慢慢深入来阅读一下,希望阅读后能够对大家有所帮助。下面跟着小编一起深入学习“怎么进行Lin
2023-06-28

Linux系统下怎么转换文件编码格式

本篇内容介绍了“Linux系统下怎么转换文件编码格式”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、利用iconv命令进行文件内容编码转换
2023-06-12

linux中的文件编码怎么转换

本篇内容主要讲解“linux中的文件编码怎么转换”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux中的文件编码怎么转换”吧!查看文件的编码\file使用 fi
2023-05-25

php怎么将汉字转换为UTF-8编码

这篇文章主要介绍“php怎么将汉字转换为UTF-8编码”,在日常操作中,相信很多人在php怎么将汉字转换为UTF-8编码问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php怎么将汉字转换为UTF-8编码”的疑
2023-07-05

如何实现批量转换目录下文件编码的shell脚本

这篇文章将为大家详细讲解有关如何实现批量转换目录下文件编码的shell脚本,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一例批量转换目录下文件编码的shell脚本代码。需求描述:由于从window转lin
2023-06-09

Java中怎么将base64编码字符串转换为图片

本篇内容介绍了“Java中怎么将base64编码字符串转换为图片”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!将base64编码字符串转换为
2023-07-05

在Java中怎么将 Base64编码与String字符串进行转换

这篇文章给大家介绍在Java中怎么将 Base64编码与String字符串进行转换,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。具体方法如下:package com.duanlian.daimengmusic.util
2023-05-31

编程热搜

目录