スポンサーリンク
ファイルを見込み、shift-jisからeuc-jpへ変換する
#include <unicode/ucnv.h> #pragma comment(lib, "icuuc.lib") void Converter(){ std::fstream r("C:\\dev\\shiftjis.txt"); std::string src_data; r >> src_data; //エラーを受け取る変数 UErrorCode err = U_ZERO_ERROR; //入力・出力の各文字コード char srcCode[] = "shift-jis"; char dstCode[] = "euc-jp"; //UnicodeStringに渡す文字列の文字コードを指定する UConverter* srccnv = ucnv_open(srcCode, &err); //入力された文字の文字コードを内部形式に変換 icu::UnicodeString srcstr(src_data.c_str(), src_data.length(), srccnv, err); //内部形式の文字コードを目的の文字コードへ変換 char* dst_data = new char[100]; srcstr.extract(0, srcstr.length(), dst_data, dstCode); using namespace std; std::fstream w("C:\\dev\\dst.txt", ios::out | ios::binary | ios::trunc); w << dst_data; }