掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
英語OSと日本語OSでの文字変換の違い (ID:102119)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> 1.OSによって、StrConvやChr()の動作が変わってしまうのでしょうか。 その動作は、既定の文字コードに依存しています。 この動作を変更するため、StrConv には第三引数が用意されています。 日本語であれば、&H411 を指定します。 また、Chr/Asc も言語に依存します(ChrB/AscB は影響を受けません)。 Shift_JIS 相当の変換が必要なら、StrConv の第3引数に &H411 を指定して vbFromUnicode/vbUnicode を使うと、Byte()/String の相互変換が 可能ですので、これで代用することができます。 > 2.例えばデータの受信に失敗していて、文章の途中でNULLが含まれる文字をリストボックスに表示しようとしたら、 TextBox や ListBox は、vbNullChar 以降の文字列を表示できません。 別の文字に置き換えるなどの対処が必要ですね。 > 2バイト文字:StrConv() > 1バイト文字:Chr() 1 バイト文字への変換に StrConv を使うことも出来ますし、 2 バイト文字への変換に Chr を使うことも出来ますよ。 Dim B(1) As Byte B(0) = &H41 B(1) = &H42 MsgBox StrConv(B, vbUnicode, &H411), , "SJIS: 41,42" MsgBox Chr(B(0)) & Chr(B(1)), , "SJIS: 41,42" B(0) = &H82 B(1) = &HA0 MsgBox StrConv(B, vbUnicode, &H411), , "SJIS: 82A0" MsgBox Chr(B(0) * &H100& + B(1)), , "SJIS: 82A0"
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.