【发布时间】:2011-06-16 01:06:06
【问题描述】:
长话短说:
+ 我正在使用 ffmpeg 来检查 MP3 文件的艺术家姓名。
+ 如果艺术家的名字中有亚洲字符,则输出为 UTF8。
+ 如果它只有 ASCII 字符,则输出为 ASCII。
输出开头没有使用任何 BOM 指示。
问题是,如果艺术家的名字中有一个“ä”,那么它是 ASCII,而不是 US-ASCII,所以“ä”不是有效的 UTF8 并被跳过。
如何判断 ffmpeg 的输出文本文件是否为 UTF8?该应用程序没有任何开关,我只是认为不总是使用 UTF8 是很愚蠢的。 :/
这样的东西会很完美:
http://linux.die.net/man/1/isutf8
如果有人知道 Windows 版本?
非常感谢各位前辈!
【问题讨论】:
-
"ASCII,只是不是 US-ASCII" 没有意义。如果
'ä'表示为单个字节,则既不是ASCII(因为ASCII只能表示128个字符)也不是UTF-8(因为UTF-8使用2个字节来表示'ä')。它可能是 Latin-1 (ISO-8859-1) 或 Windows 代码页之一,例如 Windows-1252。如果一个文本文件没有超出 ASCII 128 值范围的字符,那么它同时是 ASCII 和 UTF-8。
标签: validation utf-8 ascii extended-ascii