在字符集之间转换文本文件的最快、最简单的工具或方法是什么?

具体来说,我需要从UTF-8转换为ISO-8859-15,反之亦然。

一切都可以:你最喜欢的脚本语言的一行程序,命令行工具或其他用于操作系统的实用程序,网站等等。

目前为止的最佳解决方案:

在 Linux/UNIX/OS X/cygwin 上:

Gnu iconv suggested by Troels Arvin is best used as a filter. It seems to be universally available. Example: $ iconv -f UTF-8 -t ISO-8859-15 in.txt > out.txt As pointed out by Ben, there is an online converter using iconv. recode (manual) suggested by Cheekysoft will convert one or several files in-place. Example: $ recode UTF8..ISO-8859-15 in.txt This one uses shorter aliases: $ recode utf8..l9 in.txt Recode also supports surfaces which can be used to convert between different line ending types and encodings: Convert newlines from LF (Unix) to CR-LF (DOS): $ recode ../CR-LF in.txt Base64 encode file: $ recode ../Base64 in.txt You can also combine them. Convert a Base64 encoded UTF8 file with Unix line endings to Base64 encoded Latin 1 file with Dos line endings: $ recode utf8/Base64..l1/CR-LF/Base64 file.txt

在Windows Powershell (Jay Bazuzi)上:

PS C:\> gc - zh utf8 in.txt | out - zh ascii out.txt

(但是没有ISO-8859-15支持;它说支持的字符集是unicode, utf7, utf8, utf32, ascii, bigendianunicode, default和oem。)

Edit

你是指iso-8859-1支持吗?使用"String"可以做到这一点,反之亦然

gc -en string in.txt | Out-File -en utf8 out.txt

注意:可能的枚举值是“Unknown, String, Unicode, Byte, BigEndianUnicode, UTF8, UTF7, Ascii”。

CsCvt - Kalytta的字符集转换器是另一个伟大的基于命令行的Windows转换工具。


当前回答

尝试VIM

如果你有vim,你可以使用这个:

没有对每种编码进行测试。

最酷的部分是你不需要知道源编码

vim +"set nobomb | set fenc=utf8 | x" filename.txt

注意,这个命令直接修改文件


解释部分!

+: vim打开文件时直接输入命令。通常用于在特定行打开文件:vim +14 file.txt |:多个命令的分隔符(如;在bash中) set nobomb:没有utf-8 BOM set fenc=utf8:设置新的编码为utf-8 doc link x:保存并关闭文件 Filename.txt:文件的路径 :这里的报价是因为管道。(否则bash将使用它们作为bash管道)

其他回答

尝试VIM

如果你有vim,你可以使用这个:

没有对每种编码进行测试。

最酷的部分是你不需要知道源编码

vim +"set nobomb | set fenc=utf8 | x" filename.txt

注意,这个命令直接修改文件


解释部分!

+: vim打开文件时直接输入命令。通常用于在特定行打开文件:vim +14 file.txt |:多个命令的分隔符(如;在bash中) set nobomb:没有utf-8 BOM set fenc=utf8:设置新的编码为utf-8 doc link x:保存并关闭文件 Filename.txt:文件的路径 :这里的报价是因为管道。(否则bash将使用它们作为bash管道)

尝试+记事本

在Windows上,我能够使用notepad++从ISO-8859-1转换为UTF-8。点击“编码”,然后点击“转换为UTF-8”。

尝试EncodingChecker

github上的编码检查器

文件编码检查器是一个GUI工具,允许您验证一个或多个文件的文本编码。该工具可以显示所有选定文件的编码,或者仅显示不具有指定编码的文件的编码。

文件编码检查程序需要。net 4或更高版本才能运行。

对于编码检测,文件编码检查器使用UtfUnknown字符集检测器库。没有字节顺序标记(BOM)的UTF-16文本文件可以通过启发式检测。

试试iconv Bash函数

我把它放到。bashrc中:

utf8()
{
    iconv -f ISO-8859-1 -t UTF-8 $1 > $1.tmp
    rm $1
    mv $1.tmp $1
}

..能够像这样转换文件:

utf8 MyClass.java

还有一个转换文件编码的网络工具:https://webtool.cloud/change-file-encoding

它支持广泛的编码,包括一些罕见的编码,如IBM代码页37。