gpt4 book ai didi

linux - 查找文本文件的编码

转载 作者:太空狗 更新时间:2023-10-29 11:38:51 25 4
gpt4 key购买 nike

我有一堆不同编码的文本文件。但我想把所有的都转换成utf-8。由于大约有 1000 个文件,我无法手动完成。我知道 llinux 中有一些命令可以将文件的编码从一种编码更改为另一种编码。但我的问题是如何自动检测文件的当前编码?显然,我正在寻找一个命令(比如 FindEncoding($File) )来执行此操作:

foreach file
do
$encoding=FindEncoding($File);
uconv -f $encoding -t utf-8 $file;
done

最佳答案

我通常这样做:

for f in *.txt; do
encoding=$(file -i "$f" | sed "s/.*charset=\(.*\)$/\1/")
recode $encoding..utf-8 "$f"
done

请注意,重新编码会覆盖更改字符编码的文件。如果无法通过扩展名识别文本文件,可以使用 file -bi | 确定它们各自的 mime 类型。切-d';' -f 1.

通过首先检查 UFT-8 来避免不必要的重新编码可能也是一个好主意:

if [ ! "$encoding" = "utf-8" ]; then
#encode

经过这种处理后,可能仍有一些文件使用 us-ascii 编码。这样做的原因是 ASCII 是 UTF-8 的一个子集,它一直在使用,除非引入了任何 ASCII 无法表达的字符。在这种情况下,编码将切换为 UTF-8。

关于linux - 查找文本文件的编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12866068/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com