タイトル : Re: 追伸 投稿日 : 2008/01/07(Mon) 10:50 投稿者 : よねKEN
> 今回、MSCommを使用したのが初めてだったこと、また、バイナリモードに対する > 理解が不足していたことが原因だと思います。 VBの文字列はUnicodeだということの認識不足も一因ではないでしょうか。 0x41 はShift-JIS(ASCII)では"A"ですが、Unicodeではそうではありません。 Unicodeでは"A"は0x00 0x41の2バイトです。 0x41がセットされたバッファをそのままStringに代入すると 不完全な文字のため表示できません。 StrConv関数を介してShift-JIS→Unicodeに変換するとか、 Chr関数でShift-JISの文字コードデータから文字に変換するといった 何らかの変換が必要でした。 #MsgBoxで0x41だけの場合に"A"と表示される理由は不明ですが、何か特別な仕様によるものでしょうかね。 |