|
|
1
9
除了utf-8(因为并非每个8位字节序列都是有效的utf-8),检测编码对于所有8位字符集都非常困难,并且通常需要检测编码的文本的语义知识。 想想看:任何特定的纯文本信息都只是一堆字节,没有相关的编码信息。如果你看任何一个特定的字节,它可能意味着 任何东西 ,因此,为了有机会检测编码,您必须在其他字节的上下文中查看该字节,并根据可能的情况尝试一些启发式方法 结合体 但对于8位字符集,您永远无法确定。 举例来说,这里演示了启发式出错: http://www.hoax-slayer.com/bush-hid-the-facts-notepad.html 对于某些16位集,您有机会检测到,因为它们可能包含字节顺序标记或将每秒字节设置为0。
|
|
|
2
3
|
|
|
3
1
你真的不能,除非文件很好地告诉你里面的某个地方。 例如,HTML文件意味着在顶部附近包含一个内容类型元标记,以便您的web浏览器知道使用了什么编码。。如
或
有一些方法试图通过查看文件并找出提示某些编码的字节序列来猜测,但这些方法实际上只是猜测。 |
|
|
4
0
您可以使用fread()函数查看文件的前几个字节 magic number ,然后将该幻数映射到文件类型的已知幻数列表。 |
|
|
stack programming · 如何将损坏的文本恢复为阿拉伯语 2 年前 |
|
|
FoolishMortal · 无法显示从基64字符串解码的特定图像 2 年前 |
|
|
xchrisbradley · 使用Zig签名对功能选择器进行编码 2 年前 |
|
|
dax · 运行长度编码给出错误的结果 2 年前 |
|
Ben · 内存中的Python GZIP在现有文件上 3 年前 |
|
|
GoodCat · 如何将这64行缩短4个字符? 3 年前 |