わびさびサンプルソース

WindowsやHTML5などのプログラムのサンプルコードやフリーソフトを提供します。

UTF8文字列をwstringに変換する

UTF8変換する為には、MultiByteToWideChar()関数を使用します。第1引数にCP_UTF8を渡す事でUTF8文字列を扱う事ができます。

#include <stdio.h>
#include <tchar.h>
#include <locale.h>
#include <string>
#include <iostream>
#include <windows.h>



/*
	UTF8文字列をwstringに変換する
*/
std::wstring Utf8ToWString
(
	std::string oUTF8Str
)
{
	// バッファサイズの取得
	int iBufferSize = ::MultiByteToWideChar( CP_UTF8, 0, oUTF8Str.c_str()
		, -1, (wchar_t *)NULL, 0 );

	// バッファの取得
	wchar_t* wpBufWString = (wchar_t*)new wchar_t[ iBufferSize ];

	// UTF8 → wstring
	::MultiByteToWideChar( CP_UTF8, 0, oUTF8Str.c_str(), -1, wpBufWString
		, iBufferSize );

	// wstringの生成
	std::wstring oRet( wpBufWString, wpBufWString + iBufferSize - 1 );

	// バッファの破棄
	delete [] wpBufWString;

	// 変換結果を返す
	return( oRet );
}



int _tmain
(
	  int argc
	, _TCHAR* argv[]
)
{
	// 標準出力にユニコード出力する
	setlocale( LC_ALL, "Japanese" );

	// UTF8文字列をwstringに変換する
	std::wstring oWString = Utf8ToWString( "Unicode UTF8 String" );

	// 標準出力へ出力する
	std::wcout << oWString << std::endl;

	// 正常終了
	return( 0 );
}

実行結果

Unicode UTF8 String






わびさびサンプルソース

WindowsやHTML5などのプログラムのサンプルコードやフリーソフトを提供します。