如何检查文本文件是否使用UTF-8编码
How to check whether text file is encoded in UTF-8?
如何检查文本文件是否在c++中以UTF-8编码?
尝试将其读取为UTF-8,看看UTF-8编码是否被破坏,如果没有,是否只有有效的Unicode点。
但仍然不能保证文件是UTF-8或ASCII或其他格式。您如何解释包含单个字节的文件,即字母A
?ASCII码?utf - 8 ?其他的吗?同样,如果文件以BOM
开头,但不是真正的UTF-8或不打算使用UTF-8,该怎么办?
这篇文章也许你会感兴趣。
您永远无法确定任何一段二进制数据是否打算表示UTF-8。但是,您总是可以检查是否可以将解释为UTF-8。最简单的方法是尝试转换它(比如转换为UTF-32),看看是否没有出现错误。如果您只需要验证,那么您可以做同样的事情,而不需要实际编写输出。(你需要自己写,但这很容易。)
请注意,出于安全原因,在出现第一个错误时完全中止转换是至关重要的,而不是试图以某种方式"恢复"。
尝试转换为UTF-16。如果没有错误,那么很可能是UTF-8。但无论你做什么,它仍然是最好的猜测。
相关文章:
- 在提升multi_index容器中,是否定义了"default index"?
- HEX值到wchar_t字符(UTF-8)的转换
- 在C++STL中是否有Polyval(Matlab函数)等价物?
- 检查输入是否不是整数或数字
- 是否可以初始化不可复制类型的成员变量(或基类)
- 如何将 UTF-8 文本从文件转换为某个可以迭代的容器,并检查每个符号是否为C++字母数字?
- 检查 UTF-8 字符串在现代C++中是否有效
- 是否可以构造与 3 个或更多非连续 UTF 代码点匹配的 PCRE UTF-8 正则表达式
- C++11 正则表达式是否适用于 UTF-8 字符串
- C/C++ PCRE 是否可以匹配 2 个或多个 UTF-8 代码点,这些代码点在 UTF-8 字符串中彼此相距甚远
- 是否有任何内置的 UTF 在 c++ 在窗口中
- 检查 UTF-8 字符串在 Qt 中是否有效
- 在UTF-8内部工作,然后仅在Windows中需要时转换为UTF-16,是否存在任何危险
- 如何检查文本文件是否使用UTF-8编码
- c++是否支持除UTF-8、UTF-16和UTF-32以外的字符编码之间的转换?
- 如何判断wchar_t是否有代理(UTF-16)
- 当一个符号替换几个符号时,是否存在从UTF-8到CP1251的音译?
- 是否有可能让GCC 3.4.6编译带有BOM源文件的UTF-8 ?
- C++库中的文件打开接口是否应该在Windows上使用UTF-8
- 是否可以在VisualStudio2008中默认使用UTF-8编码