ENGLISH page is here.
GET DinopSearchBar
サイト内検索:
HOME
VC++ TIPS
ダウンロード
DinopExifReader
DinopSearchBar
DinopSearchBar mini
DinopTabbingBar
for Firefox
大阪湾の生き物
甲子園浜の自然
甲子園浜の干潟
甲子園浜の水中
甲子園浜の野鳥
近畿の山々
植物図鑑
箕面マップ
水中機材
カメラ
ランキング
望遠鏡の世界
顕微鏡の世界
Googleのすべて
GoogleマップAPI
ニュース
読んだ本
日記
変な料理の作り方
遺伝子操作
論文紹介
デイトレード
自動売買でFX
ネットで小遣い稼ぎ
Solaris
電子工作
その他
問い合わせ
VC++用コード集
大阪湾の生き物
水中用機材
since:2000/11/15
dinopcom@gmail.com
www.dinop.comは
だいのっぷ・どっと・こむ
と読んでください。







« 同級生の投げた竹が目に刺さる、中2男子重体…福岡 | メイン | タマげた!? 白い黄身 »

MBCS(ANSI)からユニコードへの変換




解説


・MultiByteToWideCharを使って変換するのは面倒だからCAtlStringなどを利用する。


面倒な変換例


普通MBCSからユニコードに変換するにはMultiByteToWideCharを利用する。
しかしコードを見て分かるように非常に面倒。

void	Test(void)
{
	int		nLen;
	char	pszMBCS[50];
	WCHAR*	pszUnicode;

	//変換したいMBCS文字列
	strncpy(pszMBCS,"ABCあいう",50);

	//Unicodeに必要な文字数の取得
	nLen = ::MultiByteToWideChar(CP_THREAD_ACP, 0, pszMBCS, -1, NULL,0);
	pszUnicode = new WCHAR[nLen];

	//変換
	::MultiByteToWideChar(CP_THREAD_ACP, 0, pszMBCS, strlen(pszMBCS)+1, pszUnicode, nLen);


	//pszUnicodeが変換されたユニコード文字列

	delete	pszUnicode;
}



楽な変換例


邪道っぽいがCAtlStringやCStringを利用すると楽に変換可能。
これらのクラス内部ではMultiByteToWideCharを呼び出して変換している。


#include "atlstr.h"

void	Test(void)
{
	CAtlStringA	strMBCS
	CAtlStringW	strUnicode

	//変換したいMBCS文字列
	strMBCS = "ABCあいう";

	//変換
	strUnicode = strMBCS;

	//strUnicodeが変換されたユニコード文字列
}








Copyright (c) 1999-2007 issei. All rights reserved. (運営者情報