最新の更新情報

2012年2月
« 1月    
 1234
567891011
12131415161718
19202122232425
26272829  

本ブログのURL

qrcode.png

雨雲の動き

お天気

 
 
吟遊詩人の戯言 内専用の記事検索...
 
 

CStdioFileにて全角がファイルに書けない?


キーワード(クリックで関連記事が読めます) → ,

関連記事



 
 

いま,怪しいシステムをVC++&MFC@Visual Studio2005で突貫で実装作業中

組みあがってテスト工程にまわしてみたら

CStdioFileクラスにてファイル出力しているブロックに不具合発生
なぜか,全角だけファイルに出力されない

あらら??


となって,いろいろ調べてみたら...

Visual Studio2005から,基本文字コードがUnicodeになったのはまぁ,有名な話

ところがCStdioFile自体は,MBCS前提の実装になったまんま,だそうな
互換性の絡みかな?

んで,CStdioFile.WriteString()に
CString(Unicodeで内部管理してますな)の変数を突っ込んでも,出力されないとのこと

んでは,どうするかっていうと,

_wsetlocale(LC_ALL, _T(“jpn”));
あるいは
_setlocale(LC_ALL, “jpn”);

なる命令呼び出して,ロケールを変更してやれば,いいらしい

いちおう,一連の処理が終わったら,縁起物として

_wsetlocale(LC_ALL, _T(“”));
あるいは
_setlocale(LC_ALL, “”);

にて,初期設定へ戻しておきましたです


#include <locale.h>

をインクルードするのを,お忘れなくですぅ~ :wink:

 
 
 
 

1 comment to CStdioFileにて全角がファイルに書けない?

コメントを残す

  

  

  

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <img localsrc="" alt="">