`

linux 转换文件名编码和文件编码

阅读更多

查看文件编码
在Linux中查看文件编码可以通过以下几种方式:
1.在Vim 中可以直接查看文件编码
:set fileencoding
即可显示文件编码格式。
如果你只是想查看其它编码格式的文件或者想解决用Vim查看文件乱码的问题,那么你可以在
~/.vimrc 文件中添加以下内容:

set encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936

这样,就可以让vim自动识别文件编码(可以自动识别UTF-8或者GBK编码的文件),其实就是依照
fileencodings提供的编码列表尝试,如果没有找到合适的编码,就用latin-1(ASCII)编码打开。
2. enca (如果你的系统中没有安装这个命令,可以用sudo yum install -y enca 安装 )查看文件编码
$ enca filename
filename: Universal transformation format 8 bits; UTF-8
CRLF line terminators
需要说明一点的是,enca对某些GBK编码的文件识别的不是很好,识别时会出现:
Unrecognized encoding

文件编码转换
1.在Vim中直接进行转换文件编码,比如将一个文件转换成utf-8格式
:set fileencoding=utf-8

2. enconv 转换文件编码,比如要将一个GBK编码的文件转换成UTF-8编码,操作如下
enconv -L zh_CN -x UTF-8 filename

3. iconv 转换,iconv的命令格式如下:
iconv -f encoding -t encoding inputfile
比如将一个UTF-8 编码的文件转换成GBK编码
iconv -f GBK -t UTF-8 file1 -o file2

 

查看文件编码file命令

file ip.txt
ip.txt: UTF-8 Unicode text, with escape sequences
一、利用iconv命令进行编码转换文件内容编码转换



iconv命令用于转换指定文件的编码,默认输出到标准输出设备,亦可指定输出文件。

用法: iconv [选项...] [文件...]

有如下选项可用:

输入/输出格式规范:
-f, --from-code=名称 原始文本编码
-t, --to-code=名称 输出编码

信息:
-l, --list 列举所有已知的字符集

输出控制:
-c 从输出中忽略无效的字符
-o, --output=FILE 输出文件
-s, --silent 关闭警告
--verbose 打印进度信息

-?, --help 给出该系统求助列表
--usage 给出简要的用法信息
-V, --version 打印程序版本号

例子:
iconv -f utf-8 -t gb2312 aaa.txt >bbb.txt
这个命令读取aaa.txt文件,从utf-8编码转换为gb2312编码,其输出定向到bbb.txt文件。
二、文件名编码转换

因为现在用linux,原来在windows里的文件都是用GBK编码的。所以copy到linux下是乱码,文件内容可以用iconv来转换可是好多中文的文件名还是乱码,找到个可以转换文件名编码的命令,就是convmv。
convmv命令详细参数


例如
convmv -f GBK -t UTF-8 *.mp3
不过这个命令不会直正的转换,你可以看到转换前后的对比。如果要直正的转换要加上参数 --notest
convmv -f GBK -t UTF-8 --notest *.mp3
-f 参数是指出转换前的编码,-t 是转换后的编码。这个千万不要弄错了。不然可能还是乱码哦。还有一个参数很有用。就是 -r 这个表示递归转换当前目录下的所有子目录。
* 需要安装 convmv-1.10-1.el5.noarch.rpm
三、
更好的傻瓜型命令行工具enca,它不但能智能的识别文件的编码,而且还支持成批转换。
  1.安装
  $sudo apt-get install enca
  2.查看当前文件编码
  enca -L zh_CN ip.txt
   Simplified Chinese National Standard; GB2312
   Surrounded by/intermixed with non-text data
  3.转换
  命令格式如下
  $enca -L 当前语言 -x 目标编码 文件名
  例如要把当前目录下的所有文件都转成utf-8
  enca -L zh_CN -x utf-8 *
   enca -L zh_CN file 检查文件的编码 
  enca -L zh_CN -x UTF-8 file 将文件编码转换为"UTF-8"编码 
  enca -L zh_CN -x UTF-8 < file1 > file2 如果不想覆盖原文件可以这样,很简单吧。
分享到:
评论

相关推荐

    Linux下查看文件编码,文件编码格式转换和文件名编码.doc

    Linux 文件编码查看、转换和文件名编码转换 在 Linux 中查看文件编码可以通过多种方式实现,例如,在 Vim 中可以使用 `set fileencoding` 命令来查看当前文件的编码格式。如果需要自动识别文件编码,可以在 `~/....

    批量文件名编码转换.7z

    总之,"批量文件名编码转换.7z" 解决了IT领域中常见的文件名编码不兼容问题,通过批量URL编码转换,使文件在不同环境间能顺畅地传输和共享。这个工具的使用有助于提升工作效率,减少因编码差异导致的文件管理困扰。

    Linux下中文文件名乱码问题的详解 - CSDN博客1

    他们发现,Windows系统默认使用GBK编码,而Linux默认使用UTF-8编码,因此在处理文件名时需要进行编码转换。作者提供了一个自定义的`path_info()`函数来替代原生的`pathinfo`函数,以确保在处理中文文件名时能正确...

    linux转化windows文件编码格式脚本

    Linux 转换 Windows 文件编码格式脚本是将 Windows 上的文件编码格式转换为 UTF-8 编码,以便在移植 Windows 代码到 Linux 下时避免注释代码乱码和编码格式引起的编译错误。 该脚本使用 Bash shell 脚本语言编写,...

    linux下的文件名乱码,转为正常

    - **UTF-8**:UTF-8是Unicode的一种实现方式,广泛应用于Linux和网络,它能兼容ASCII编码,并且在大多数情况下是默认的文件名编码。 - **locale**:在Linux中,locale用于定义本地化设置,包括字符编码、日期格式...

    部署到linux服务器文件名乱码问题

    当文件从Linux服务器传输到Windows服务器再返回Linux服务器时,文件名的编码经历了两次转换,如果没有正确处理编码转换,则容易出现乱码。 2. **避免乱码的方法**:为了避免此类问题的发生,可以在传输过程中尽量...

    JAVA文件编码转换工具1.50base[jar文件]

    JAVA文件编码转换工具1.50base 默认gbk编码转utf8编码 ...执行编码转换,创建新文件为原文件名 选择文件夹 文件过滤生效 附带GBK编码文件news.sql 有问题请邮件我:hj-545@qq.com 需要源码可以邮件我:hj-545@qq.com

    批量修改文件名、修改文件 创建时间、修改时间、访问时间、音频转换为MP3

    在转换过程中,你可以选择不同的比特率和质量设置,以平衡音质和文件大小。 M4a格式是由Apple推出的一种音频文件格式,它基于AAC编码,通常提供比同等大小的MP3更好的音质。然而,由于MP3的普及度,有时需要将M4a...

    ckfinder修改文件名称

    他们可能添加了对文件名编码转换的逻辑,比如使用`URLEncoder.encode()`和`URLDecoder.decode()`进行URL编码和解码,或者使用`CharsetEncoder`和`CharsetDecoder`进行更细致的字符集转换。 修改源码并重新打包成jar...

    Ubuntu Linux系统下文件编码转换的技巧

    Ubuntu Linux 系统下文件编码转换是一个常见的问题,对于程序员和开发者来说尤其重要。在 Ubuntu 系统下,默认的文件编码是 utf-8 的,但是有些时候,我们需要把文件从默认的 gbk 编码转换成 utf-8 编码,以便更好...

    linux环境音频编码

    在Linux环境中进行音频编码,尤其是将.wav格式转换为.aac格式,涉及到许多核心技术和工具。以下是一些关于这个主题的重要知识点: 1. **音频编码格式**:音频编码是为了压缩音频数据,减少存储空间和网络传输的带宽...

    linux乱码问题的解决办法

    - **转换文件名编码**:例如,将所有`.mp3`文件名从GBK编码转换为UTF-8编码,可以使用`convmv -f GBK -t UTF-8 *.mp3`命令。默认情况下,Convmv仅显示转换效果而不实际执行转换操作。要实际执行转换,需要加上`--no...

    Rails中上传文件保存中文文件名乱码

    2. 使用`iconv`库或`String#encode`方法转换文件名编码,确保文件名以UTF-8格式保存。 3. 存储转换后的文件名到数据库,以便后续操作。 4. 在需要的时候,从数据库取出文件名并解码,以便正确访问文件。 通过这些...

    linux文件转化

    为此,Linux提供了一个名为`convmv`的工具,专门用于转换文件名的编码。 1. **安装convmv**:如果系统未安装`convmv`,可以使用`yum -y install convmv`进行安装。 2. **使用convmv进行转换**: - 基本用法为`...

    Java中压缩与解压--中文文件名乱码解决办法

    这个问题主要源于Java中默认使用的编码方式与实际文件名编码不一致,尤其是在Windows系统下,文件名通常采用GB2312或GBK编码,而Java中的`ZipInputStream`和`ZipOutputStream`类默认使用的是Unicode编码,这种编码...

    浅谈Linux的编码及编码转换方法

    总之,理解Linux中的编码和转换机制对于处理多平台文件和保证数据的正确性非常重要。通过使用Vim、iconv和convmv等工具,我们可以有效地管理和解决编码兼容问题。在日常工作中,熟练掌握这些方法将有助于提高工作...

    Java处理中文文件名-压缩中文名字的文件.rar

    总结来说,Java处理中文文件名的关键在于了解编码的使用,并在创建、读取和压缩文件时正确地进行编码和解码。确保始终使用与文件系统和压缩格式兼容的编码,这样可以避免乱码问题。对于非标准格式如RAR,可能需要...

    Linux下批量修改文件编码

    本文将详细介绍如何在Linux下实现文件编码的批量转换,并通过一个具体示例来展示整个过程。 #### 一、背景介绍 在不同的操作系统或开发环境中,文件可能采用不同的字符编码格式,例如GB2312、UTF-8等。当这些文件...

    下载文件提示框中文乱码

    4. 文件名编码转换:对于文件名乱码,可以使用专门的工具进行转换,如“File Renamer”或“Advanced Renamer”,这些工具能帮助批量转换文件名的编码。 5. 操作系统设置:在Windows系统中,可以通过修改注册表或者...

Global site tag (gtag.js) - Google Analytics