■文字コード判定■
あるバッファに入っている文字列の文字コード(ANSI、SJIS、UNICODEなど)を判定したいのですが、色々と調べたのですが、解決しませんでした。
ANSIでもUNICODEでもきちんと文字列を扱えるアプリケーションを開発しています、問題となる例です↓
(メッセージボックス)
int MessageBox_OK( HWND hWnd, LPCTSTR lpCaption, LPCTSTR lpText )
{
int ret;
int len_w;
LPWSTR wCaption, wText; //変換後の、UNICODE文字列取得バッファ
//コンパイル設定がUNICODEの時に、ANSIをUNICODEに変換する
#ifdef UNICODE
//ここで文字コードを判定したいです|・ω・`)
//UNICODEでなかったらUNICODEに変換する
len_w = AnsiToUnicode_Size( lpCaption );
len_w = len_w * sizeof(WCHAR);
wCaption = (LPWSTR)malloc( len_w + 1 );
AnsiToUnicode_Convert( lpCaption, wCaption );
//ここで文字コードを判定したいです|・ω・`)
len_w = AnsiToUnicode_Size( lpText );
len_w = len_w * sizeof(WCHAR);
wText = (LPWSTR)malloc( len_w + 1 );
AnsiToUnicode_Convert( lpText, wText );
#else
return MessageBox( hWnd, lpText, lpCaption, MB_OK );
#endif
return MessageBox( hWnd, wText, wCaption, MB_OK );
}
//ANSI→UNICODE (必要サイズ(文字数))
int AnsiToUnicode_Size( LPCSTR strAnsi );
//ANSI→UNICODE (変換)
BOOL AnsiToUnicode_Convert( LPCSTR strAnsi, LPWSTR strUnicode );
よろしくお願いします。
お礼
ありがとうございました。