加入收藏 | 设为首页 | 会员中心 | 我要投稿 拼字网 - 核心网 (https://www.hexinwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

linux 字符集转换命令,Linux下GBK编码到UTF-8文件编码转换方法

发布时间:2022-11-03 12:48:09 所属栏目:Linux 来源:
导读:  Linux命令行下查看看文件的编码 enca 文件名 Linux文件名编码批量转换 convmv -f 源编码 -t 新编码 [选项] 文件名 常用参数:

  -r 递归处理子文件夹 --notest 真正进行操作,请注意在默认情况下是不对文件
  Linux命令行下查看看文件的编码 enca 文件名 Linux文件名编码批量转换 convmv -f 源编码 -t 新编码 [选项] 文件名 常用参数:
 
  -r 递归处理子文件夹 --notest 真正进行操作,请注意在默认情况下是不对文件进行真实操作的,而只是试验。 --list 显示所有支持的编码
 
  --unescap 可以做一下转义,比如把%20变成空格 比如我们有一个utf8编码的文件名,转换成GBK编码,命令如下:
 
  convmv -f UTF-8 -t GBK --notest utf8编码的文件名
 
  Linux下批量转换文件内容编码 1.使用enca,例如要把当前目录下的所有文件都转成utf-8
 
  $enca -x utf-8 *
 
  2,使用iconv 转换 iconv的命令格式如下:
 
  iconv -f encoding -t encoding inputfile
 
  比如将一个UTF-8 编码的文件转换成GBK编码
 
  iconv -f GBK -t UTF-8 file1 -o file2
 
  linux下GBK->UTF-8文件编码批量转换脚本
 
  find default -type d -exec mkdir -p utf/{} ;
 
  find default -type f -exec iconv -f GBK -t UTF-8 {} -o utf/{} ;
 
  这两行命令将default目录下的文件由GBK编码转换为UTF-8编码,目录结构不变,转码后的文件保存在utf/default目录下。
 
  MySQL中GBK转UTF-8
 
  经过两天的尝试,mysq数据转码终于告一段落 起因:gbk编码,用脚本python处理导入数据的时候,某些汉字乱码,为了根治,决定把数据库转码
 
  环境linux,secretcrt,mysql 5.1.14-beta 1.数据库按gbk导出
 
  mysqldump -uroot db_rdm --default-character-set gbk -p db_rdm.sql
 
  2.创建为utf8库,如
 
  create database db_rdm_test DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
 
  3.把一下shell保存执行
 
  DB='db_rdm_test'
 
  sed 's/gbk/utf8/g' db_rdm_gbk.sql_bak | iconv -f gb18030 -t utf-8 > $DB.sql
 
  mysql -uroot --default-character-set=utf8 $DB < $DB.sql
 
  说明:find命令,配合-exec参数,可以对查询的文件进行进一步的操作,可以得到很多有用的功能,比如说文件包含特定字符串的查询等,要了解这个功能,最简单直
 
  接的就是看find命令帮助,列出 -exec command ; Execute command; true if 0 status is
 
  returned. All following arguments to find are taken to be arguments to the
 
  command until an argument consisting of #;' is encountered. The string {}' is
 
  replaced by the current file name being processed everywhere it occurs in the
 
  arguments to the command, not just in arguments where it is alone, as in some
 
  versions of find. Both of these constructions might need to be escaped (with a
 
  ') or quoted to protect them from expansion by the shell. The command is
 
  executed in the starting directory. 其实只要读懂这段话就理解了 废话少说,这里简单说明一下 -exec 参数后面跟的是
 
  command命令,注意点如下: command命令的终止,使用 ';' (分号)来判定,在后面必须有一个 ';'
 
  '{}',使用{}来表示文件名linux编码,也就是find前面处理过程中过滤出来的文件,用于command命令进行处理
 
  特别强调,对于不同的系统,直接使用分号可能会有不同的意义, 使用转义符 ''在分号前明确说明,对于前面我们遇到的问题,主要就是这个原因引起的! 举例:
 
  1.查询所有保护字符串“Hello”的文件
 
  find / -exec grep "Hello" {} ;
 
  2.删除所有临时文件
 
  find / -name "*.tmp" -exec rm -f {} ;
 

(编辑:拼字网 - 核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!