#include <fstream> #include <iostream> #include <vector> // エンコーディングを判断するための関数 std::string GetFileEncoding(const std::string& filePath) { std::ifstream file(filePath, std::ios::binary); if (!file) { return "Unknown"; } std::vector<unsigned char> buffer(4); file.read(reinterpret_cast<char*>(&buffer[0]), 4); if (file.gcount() >= 2) { if (buffer[0] == 0xEF && buffer[1] == 0xBB && buffer[2] == 0xBF) { return "UTF-8"; } else if (buffer[0] == 0xFF && buffer[1] == 0xFE) { return "UTF-16LE"; } else if (buffer[0] == 0xFE && buffer[1] == 0xFF) { return "UTF-16BE"; } } // デフォルトエンコーディング(例: Shift-JIS)を判断するための追加のロジックをここに追加できます return "Shift-JIS"; } int main() { std::string csvFilePath = "your_csv_file.csv"; std::string encoding = GetFileEncoding(csvFilePath); std::cout << "File Encoding: " << encoding << std::endl; return 0; }