文字化け


ダバダ  2003-03-09 09:37:59  No: 106241

作成したプログラムを友人に送ってみたところ、文字化けが起きたという報告があったんですが、作成している自分のマシンでは文字化けはおきません。
こういう場合はどういった原因が考えられるのでしょうか。


たかみちえ  URL  2003-03-09 09:52:24  No: 106242

相手のパソコンにVB?JP.DLL(VB日本語化ランタイム)蛾入ってないと思います。


ダバダ  2003-03-10 03:38:39  No: 106243

ありがとうございます。
聞いてみて、結果をまた書きます。


ダバダ  2003-03-28 00:41:39  No: 106244

ずいぶん遅くなりましたが、報告いたします。
相手側のマシンにはDLLは入っています。
何台かのパソコンで試してみてDLLを入れることによって解決したのもあったんですが、解決しないマシンもあるのです。
ちなみにそのマシンはXPなのですが、文字化けする場所としない場所が決まっているのですが、何が問題なのかわかりません。


たかみちえ  URL  2003-03-28 01:47:05  No: 106245

バージョン違いじゃないですか?
(VB6で作ったソフトの文字化けを防ぐにはVB6JP.DLLが必要、VB5のには、VB5JP.DLLが必要)
確かどのWindowsからか、VBランタイムは標準添付になったそうですけど、
日本語化DLLは入ってません。

> 文字化けする場所としない場所が決まっているのですが
  まさに日本語化DLLがないときの症状です。

  そのパソコンにclWindows(http://www.runan.net/)などのソフトを入れてみて、ソフトと同じバージョンの日本語化DLLが入っているかどうか
(そして最新版かどうか)
確認してみてください。


Loreley  2003-03-28 02:16:13  No: 106246

多分サービスパックがあたってないんじゃないかな。
win98で作ってwinNTで実行すると、
標準で文字化けします。
98>2k
98>XP
も同様です

対策としてはフォントを指定してやります。
たとえばLabel1の内容が文字化けするのであれば、
デザイン時にフォントを一回ちがうのにして、
もう一度もどしてやれば表示されます。


Loreley  2003-03-28 02:21:27  No: 106247

追記ですが
なぜこんなことが起こるかといえば、
VBではコントロールを貼り付けて、
そのコントロールのフォントを変更しなかった場合、
フォントの情報は(プロパティバッグに)保存されません。
つまり、「デフォルトのフォントをつかってね」ってことになります。
これが問題で(いや英語環境なら問題じゃないんですが)
NT系ではそのデフォルトが英語フォントになっていて
それで表示しようとしてしまうためのようです。


ダバダ  2003-03-28 03:40:37  No: 106248

まだ、確認はしてないんですが実は日本語だけが文字化けするわけではないんです。


oku  URL  2003-03-28 08:18:00  No: 106249

フォームのロード時にフォントを指定してあげれば
上手く行くと思います。
自分の作っているソフトでは、
文字化け発生したことありませんので下記を試してみてください。

たとえばラベル1がある場合
Private Sub Form_Load()
    Label1.FontName = "MS Pゴシック"
    Label1.FontSize = 11
End Sub
こうやれば文字化けしないはずです。

もしコントロールが多数あってメンドクサイ!と言う人は、
フォーム上のコントロールを一気に変えてあげればOK!
Private Sub Form_Load()
    Dim intIndex        As Integer

    For intIndex = 0 To Form1.Count - 1
        With Form1(intIndex)
            .FontName = "MS Pゴシック"
            .FontSize = 11
        End With
    Next intIndex
End Sub
でもコントロールにFont等のプロパディが無いのも存在するので
そこは考えてください。
On Error Resume Nextで逃げるとか。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加