質問: 趣味でC++やっています。 ( Qtを使っています ) テキストファイルの文字コード( UTF-8, ANSI etc. ) を判別する方法はありますでしょうか? 前回の質問で一応ファイルの入出力に関しては何とかなったのですが、 GUIで QTextEdit ( Windows APIだと EDIT ) 等にD&D(ドラッグアンドドロップ)されたときにD&Dされたファイルを読み込んで QTextEditに表示する...みたいな処理をするときに、前回の方法だと UTF-8か ANSIか...みたいなやつがわからないと無理で、 もしUTF-8と限定しても...なので D&Dされた -> D&Dされたファイルの文字コードを判別 -> 適切な文字コードでファイルを読み込む -> QTextEdit等に出力etc. のようにしたいのですが。 読み込み自体は 前回の方法で、(fgetws関数だったかな。)それで読み込んでいます。 QTextEdit等に出力したりするのは問題ありませんが、 問題は「**文字コードをどうするか**」( UTF-8, ANSI... をどうやって割り出すか ) です。 自分でも「*Qt テキストファイル 文字コード 調べる*」で検索してみましたが、単に読み込む・書き込む...っていうやつだけでした。 ( 私が読んだ範囲では。 ) [情報] 言語: C++ コンパイラ: MinGW Qt: 5.6 Windows API: あり OS: Windows XP, 7, 10 ( WinAPIを使っているため ) もちろん、C言語由来でも、C++由来でも, Qtでも, WinAPIでもいいですが、とにかく判別ができないことには... よろしくお願いいたします。
回答: UTF-8決めうちにしてしまうのも手だと思います。BOMがないときは文字コードを確実に決定することは不可能なので(経験的手法は誤爆があり得る)。vscodeがやっているように、あとから文字コードを指定するくらいでいいんじゃないでしょうか。 いい加減Shift-JISは滅べ。