C++ 判断文件编码:UTF-16LE 检测
以下是一个示例C++代码,用于判断一个文件是否为UTF-16LE编码:\n\ncpp\n#include <iostream>\n#include <fstream>\n#include <vector>\n\nbool isUTF16LE(const std::string& filename) {\n std::ifstream file(filename, std::ios::binary);\n if (!file) {\n std::cout << "Unable to open file." << std::endl;\n return false;\n }\n \n std::vector<unsigned char> buffer(2);\n file.read(reinterpret_cast<char*>(buffer.data()), 2);\n \n // Check for UTF-16LE BOM (Byte Order Mark)\n if (buffer[0] == 0xFF && buffer[1] == 0xFE) {\n return true;\n }\n \n return false;\n}\n\nint main() {\n std::string filename = "example.txt"; // 你要检查的文件名\n \n if (isUTF16LE(filename)) {\n std::cout << "File is UTF-16LE encoded." << std::endl;\n } else {\n std::cout << "File is not UTF-16LE encoded." << std::endl;\n }\n \n return 0;\n}\n\n\n请将代码中的example.txt替换为你要检查的文件的文件名。该代码打开指定的文件,并读取文件的前两个字节。如果这两个字节与UTF-16LE的BOM(字节顺序标记)匹配,则判断文件为UTF-16LE编码。
原文地址: https://www.cveoy.top/t/topic/p950 著作权归作者所有。请勿转载和采集!