• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    shell实现字符编码转换工具分享

    复制代码 代码如下:

    #!/bin/bash

    : mark
    转码工具,支持UTF-8转GBK和GBK转UTF-8
    孔令飞@2012-05-07
    mark

    #set -x

    scode="gbk"
    dcode="utf-8"

    function Usage()
    {
     cat EOF
    Usage: conv [OPTIONS] [DIR]
    [-u] GBK to UTF-8
    [-g] UTF-8 to GBK
    EOF
     exit 1
    }


    #将当前目录下所有普通文件进行转码 GBK to UTF-8
    function g2u()
    {
     local dir=$1
     printf "Convering $dir ......"
     for file in $(ls $dir)
     do
      file="$dir/$file"
      if [ -f $file ];then

       coding=$(file -b $file | cut -d ' ' -f1)

       #进行转码
       if [ "$coding" = "ISO-8859" ];then
        local tmpfile=$(mktemp)
        Fright=$(stat -c %a $file)
        Fuser=$(stat -c %U $file)
        Fgro=$(stat -c %G $file)
        iconv -f $scode -t $dcode $file > $tmpfile || Usage
        mv $tmpfile $file
        chmod $Fright $file
        chown $Fuser:$Fgrp $file
       fi
      fi
     done
     printf "      done\n"
    }

    function u2g()
    {
     local dir=$1
     printf "Convering $dir ......"
     for file in $(ls $dir)
     do
      file="$dir/$file"
      if [ -f $file ];then

       coding=$(file -b $file |cut -d ' ' -f1)

       #进行转码
       if [ "$coding" = "UTF-8" ];then
        local tmpfile=$(mktemp)
        Fright=$(stat -c %a $file)
        Fuser=$(stat -c %U $file)
        Fgro=$(stat -c %G $file)
        iconv -f $dcode -t $scode $file > $tmpfile || Usage
        mv $tmpfile $file
        chmod $Fright $file
        chown $Fuser:$Fgrp $file
       fi
      fi
     done
     printf "      done\n"
    }

    [ $# -ne 2 ] Usage

    while getopts ug opt
    do
     case $opt in
      u) echo "Convert gbk coding to utf-8 ...."
      for dir in $(find $2 -type d)
      do
       g2u $dir
      done

      g) echo "Convert utf-8 coding to gbk ...."
      for dir in $(find $2 -type d)
      do
       u2g $dir
      done

      *) Usage
      exit 1

     esac
    done

    exit 0

    您可能感兴趣的文章:
    • 基于字符集、字符编码与HTTP编码解码之万象详解
    • Java字符编码解码的实现详解
    • Java反转字符串和相关字符编码的问题解决
    • php字符编码转换之gb2312转为utf8
    • mysql修改数据库编码(数据库字符集)和表的字符编码的方法
    • 微信开发中mysql字符编码问题
    上一篇:linux数据库备份并通过ftp上传脚本分享
    下一篇:win下调用putty执行命令脚本分享
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    shell实现字符编码转换工具分享 shell,实现,字符,编码,转换,