查找文本文件的编码

查找文本文件的编码

iconv命令可能会更改文件编码。但是有没有一个命令可以查找某个文本文件的文件编码。另外,我正在尝试查找每个国家/地区使用的文件编码标准。这样我就可以将编码更改为正确的国际标准化组织标准。

哪个命令可以找到文件编码?。TXT扩大。或者其他诸如.py, 或者。C、源代码文件?

然后将其更改为正确的国家/地区编码。基于国家标准。我正在尝试查找正确的字节序格式的参考以及其他相关文档。

制作一个在美国创建的 UTF-8 文本文件,格式为俄语。就好像它是用俄语格式兼容性制作的。

答案1

使用file。有关file(1)详细信息,请参阅手册页magic(5),但这里有一些示例:

我已将一堆各种类型的文件复制到一个目录中:

$ ls -l 
total 389
-rw-r--r-- 1 cas cas 372976 Apr 24 19:09 a.txt
-rw-r--r-- 1 cas cas     14 Apr 24 19:09 b.txt
-rw-r--r-- 1 cas cas  12060 Apr 24 19:09 c.h
-rwxr-xr-x 1 cas cas   5706 Apr 24 19:09 d.sh*
-rwxr-xr-x 1 cas cas    197 Apr 24 19:09 e.pl*
-rw-r--r-- 1 cas cas      6 Apr 24 19:09 f.txt
-rwxr-xr-x 1 cas cas 203072 Apr 24 19:09 g*
-rwxr-xr-x 1 cas cas  79984 Apr 24 19:09 h.c
-rw-r--r-- 1 cas cas   2975 Apr 24 19:09 i.py
-rw-r--r-- 1 cas cas    648 Apr 24 19:09 j.csv

file/etc/magic将使用以下内容 中发现的模式做出最佳猜测:

$ file *
a.txt: UTF-8 Unicode (with BOM) text, with very long lines, with CRLF line terminators
b.txt: Little-endian UTF-16 Unicode text, with no line terminators
c.h:   C++ source, ASCII text
d.sh:  Bourne-Again shell script, ASCII text executable
e.pl:  Perl script text executable
f.txt: ASCII text
g:     ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=4bb4d8a0059d50d87638057168576f5ef205efd4, for GNU/Linux 3.2.0, stripped
h.c:   C source, ASCII text, with CRLF line terminators
i.py:  Python script, ASCII text executable
j.csv: CSV text

对于这些文件,它是 100% 正确的——它完美地识别了它们。大多数时候都是这样,但它并不完美,有时可能会出错。

请注意,它file并不关心文件名的“扩展名”(.txt、.py、.c 等)是什么,它会检查文件的内容以确定它是什么。

它还可以告诉我它认为它们是什么类型的哑剧:

$ file --mime-type *
a.txt: text/plain
b.txt: text/plain
c.h:   text/x-c++
d.sh:  text/x-shellscript
e.pl:  text/x-perl
f.txt: text/plain
g:     application/x-pie-executable
h.c:   text/x-c
i.py:  text/x-script.python
j.csv: application/csv

以及他们使用什么编码:

$ file --mime-encoding *
a.txt: utf-8
b.txt: utf-16le
c.h:   us-ascii
d.sh:  us-ascii
e.pl:  us-ascii
f.txt: us-ascii
g:     binary
h.c:   us-ascii
i.py:  us-ascii
j.csv: us-ascii

相关内容