在我的文件系统上(Windows 7),我有一些文本文件(如果需要的话,这些是SQL脚本文件)。
当使用Notepad ++打开时,在“编码”菜单中报告其中一些编码为“ UCS-2 Little Endian”,而某些编码为“ UTF-8不带BOM”。
这里有什么区别?它们似乎都是完全有效的脚本。没有Notepad ++的情况下,我如何分辨文件的编码?
7
使用Firefox有一种非常简单的方法。使用Firefox打开文件,然后单击查看>字符编码。这里详细介绍。
—
凯瑟琳·加斯尼尔
使用启发式。结帐
—
Janus Troelsen 2014年
enca
和chardet
POSIX系统。
我认为替代答案是TRIAL和ERROR。
—
布兰登·贝特尔森
iconv
为此特别有用。本质上,您通过不同的编码来迭代损坏的字符串/文本,以查看哪种行之有效。当角色不再损坏时,您将获胜。我想在这里用一个程序化的例子来回答。但这是一个受保护的问题。
FF正在使用Mozilla Charset Detectors。另一种简单的方法是使用MS单词打开文件,即使对于各种古代中文和日语代码页,它也可以正确猜测文件
—
phuclv
如果您的系统上没有
—
ccpizza
chardet
或chardetect
不可用,则可以通过软件包管理器安装软件包(例如apt search chardet
,在ubuntu / debian上,通常将该软件包称为python-chardet
或python3-chardet
),或者通过pip with pip install chardet
(或pip install cchardet
对于更快的c优化版本)进行安装。