なんかここんとこ文字コードに関する相談ごとがやたらと舞い込みます。
UTF-8なファイルが増えてきて、従来のShift_JISなファイルをなんとかしたいとかその逆とか。
「IBM-ICUとか.NETとか使わず、Windows-APIだけで変換できんか? 」
て相談されまして、「なんとかなるなる!」てこしらえたのが UniConv
こんな感じで使えます。
#include <string>
#include <orz/UniConv.h>
using namespace std;
int main() {
orz::UniConv sj(932); // Shift_JIS変換器
orz::UniConv u6(CP_UTF8); // UTF_8変換器
string sjs = "Shift_JISな文字列";
wstring dbs = sj.toUnicode(sjs); // Shift_JIS -> Unicode
string u8s = u8.fromUnicode(dbs); // Unicode -> UTF_8
// operator()() を用意したので u8(sj(sjs)) でもおっけぃ
}
コードセットはコチラ、ScopedWatch, CsvParser も入ってるます。