続 日本語の表示

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
dic

続 日本語の表示

#1

投稿記事 by dic » 15年前

下のように関数を使ってUTF-8を変換しようとしたのですが
変換先のbuf2にはなにも変換されません
どこが悪いのでしょうか?
#include	<stdio.h>
#include	<locale.h>
#include	<windows.h>


void	load()
{
	FILE	*file = fopen( "0.txt", "rt" );
	char	buf[256];
	wchar_t	buf2[256];
	while( !feof(file) )
	{
		fgets( buf, sizeof(buf), file );
		MultiByteToWideChar( CP_UTF8, MB_USEGLYPHCHARS, buf, sizeof(buf), buf2, sizeof(buf2) );
		wprintf( buf2 );
	}
	fclose( file );

}


int		main()
{
	setlocale(LC_ALL, "japanese");

	load();

	return 0;

}

Justy

Re:続 日本語の表示

#2

投稿記事 by Justy » 15年前

 とりあえず、MB_USEGLYPHCHARSを 0にしてみて下さい。

dic

Re:続 日本語の表示

#3

投稿記事 by dic » 15年前

うまく変換でき
表示もうまくいきました
ありがとうございました

Justy

Re:続 日本語の表示

#4

投稿記事 by Justy » 15年前

 ちなみにですね。
 MSVC8以降の場合、fopenの第2引数のところの最後に ",ccs=UTF-8"を追加してから
fgetws()などで読み込むと MultiByteToWideChar()で変換する必要がなくなりますよ。

fopen、_wfopen (CRT)
http://msdn.microsoft.com/ja-jp/library/yeby3zcb(VS.80).aspx

Visual Studio 2005以降でUNICODEテキストファイルを扱うときのコツ - nodchipの日記
http://d.hatena.ne.jp/nodchip/20090203/1233646804

閉鎖

“C言語何でも質問掲示板” へ戻る