Linux中转换文件编码

0x00 Intro

Windows下默认的文件编码为GBK,当我需要在Linux下打开别人发给我的文本文件(比如.m, .txt等),遭遇的情况就是:文件中的所有中文都显示为乱码.
尝试使用sublime以GBK或者gb2312编码打开,结果sublime里默认没有这两个编码.

0x01 Solution

Linux自带了iconv命令用于转换文本编码.
摘录man iconv手册部分如下:

1
2
3
4
5
NAME
iconv - convert text from one character encoding to another

SYNOPSIS
iconv [options] [-f from-encoding] [-t to-encoding] [inputfile]...

使用示例:

1
2
iconv -f gb2312 -t utf-8 file.txt  # 文件内容显示在命令行,可以用来先预览转换的是否正确
iconv -f gb2312 -t utf-8 file.txt -o file-utf8.txt # 输出到文件