C++ 判断文件编码是否为 UTF-16LE - 代码示例
以下是一个用 C++ 判断文件编码是否为 UTF-16LE 的示例代码:\n\nc++\n#include <iostream>\n#include <fstream>\n\nbool isUTF16LE(const std::string& filename) {\n std::ifstream file(filename, std::ios::binary);\n if (!file) {\n std::cerr << "Failed to open file." << std::endl;\n return false;\n }\n\n char bom[2];\n file.read(bom, sizeof(bom));\n\n // UTF-16LE BOM (Byte Order Mark) is 0xFF followed by 0xFE\n if (bom[0] == '\xFF' && bom[1] == '\xFE') {\n return true;\n }\n\n return false;\n}\n\nint main() {\n std::string filename = "example.txt";\n if (isUTF16LE(filename)) {\n std::cout << "The file is encoded in UTF-16LE." << std::endl;\n } else {\n std::cout << "The file is not encoded in UTF-16LE." << std::endl;\n }\n\n return 0;\n}\n\n\n在上面的代码中,我们利用 std::ifstream 打开文件,并以二进制模式读取前两个字节。如果这两个字节的值分别为 0xFF 和 0xFE,则说明文件使用 UTF-16LE 编码,返回 true;否则返回 false。\n\n你可以将文件名替换为你想要检查的文件名,并根据需要修改输出消息。
原文地址: http://www.cveoy.top/t/topic/p952 著作权归作者所有。请勿转载和采集!