スポンサーリンク

| キーワード:

ICUライブラリによる文字コード変換

 

ファイルを見込み、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;
}

 

 

 

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)


この記事のトラックバックURL: