トップ回答者
Win32アプリケーションが文字化けします

質問
回答
-
どーも、PATIOです。
Microsoft Visual Studio 9.0だとわかりにくいのでMicrosoft Visual Studio 2008と書いた方が良いと思います。
こちらの方が多分わかりやすいです。(Miscrosoftが公表している名称の方が通りが良いと言う話です)
作成したアプリの話のようなのでツールの所でいじっても変わらないと思います。
それともIDEのアウトプットウインドウの中の表示の事なんでしょうか?
それなら、そこまで書かないとわからないと思いますよ。
アプリのウインドウ上の文字の話なら
VisualStudio2005以降、プロジェクトの文字コードの既定値がUNICODEになっています。
なので、プロジェクトの設定の所で文字コードの設定を確認してみてください。
プロジェクトのプロパティで構成プロパティの全般という所を見ます。
文字セットと言う項目があるはずですのでそこを確認してみてください。
そこがマルチバイト文字セットになっていれば、ShiftJISが使えます。
もし、Unicodeになっていたら変更してみてください。
この部分で解決できないなら他の所に原因があるかもしれません。
-
唯倉 さんからの引用 文字セットはマルチバイト文字セットにしていました。
ShiftJISを使うように設定するには、どのようにすればいいですか?
マルチバイト文字セットが、日本語環境においてはShiftJISを使う文字セットと言えます。
ところで、実行OSとか、フォントとか書かれていませんが、今どのような状態なのでしょうか?
新しく作ったプロジェクトでも発生するのか、特定のプロジェクトでのみ発生するのか、はたまた新しく作り直して同じようなやり方で作り上げても発生するのか?
もう少し、なぜ、そうなったのか、原因を特定するために、情報を書き出してみて下さい。
また、試した結果とかも教えて頂けると、アドバイスを得やすいと思います。
-
MSゴシック&MS Pゴシック(True Type).ttc は、多分間違いだと思います。
このフォント回りのレジストリ破損を修復してみるのは如何でしょうか?
以前、
また、別のPCで試したところ正常に表示されました。
と書かれていらっしゃいますから、比較可能なWindowsXP(?) PCが存在するものと推測いたしました。ですから、
-
正しく動作するPCの該当するレジストリをレジストリエディタでエクスポートして、正しく動作しないPCのレジストリを変更する(に結合する)
-
正しく動作するPCの該当するレジストリを印刷して、正しく動作しないPCでレジストリエディタを動かして1つずつ修正する
-
...
など、という作業になると思います。
-
すべての返信
-
どーも、PATIOです。
Microsoft Visual Studio 9.0だとわかりにくいのでMicrosoft Visual Studio 2008と書いた方が良いと思います。
こちらの方が多分わかりやすいです。(Miscrosoftが公表している名称の方が通りが良いと言う話です)
作成したアプリの話のようなのでツールの所でいじっても変わらないと思います。
それともIDEのアウトプットウインドウの中の表示の事なんでしょうか?
それなら、そこまで書かないとわからないと思いますよ。
アプリのウインドウ上の文字の話なら
VisualStudio2005以降、プロジェクトの文字コードの既定値がUNICODEになっています。
なので、プロジェクトの設定の所で文字コードの設定を確認してみてください。
プロジェクトのプロパティで構成プロパティの全般という所を見ます。
文字セットと言う項目があるはずですのでそこを確認してみてください。
そこがマルチバイト文字セットになっていれば、ShiftJISが使えます。
もし、Unicodeになっていたら変更してみてください。
この部分で解決できないなら他の所に原因があるかもしれません。
-
唯倉 さんからの引用 文字セットはマルチバイト文字セットにしていました。
ShiftJISを使うように設定するには、どのようにすればいいですか?
マルチバイト文字セットが、日本語環境においてはShiftJISを使う文字セットと言えます。
ところで、実行OSとか、フォントとか書かれていませんが、今どのような状態なのでしょうか?
新しく作ったプロジェクトでも発生するのか、特定のプロジェクトでのみ発生するのか、はたまた新しく作り直して同じようなやり方で作り上げても発生するのか?
もう少し、なぜ、そうなったのか、原因を特定するために、情報を書き出してみて下さい。
また、試した結果とかも教えて頂けると、アドバイスを得やすいと思います。
-
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontMapper
@MS Pゴシック @MS P明朝 @MS ゴシック @MS 明朝 ARIAL COURIER COURIER NEW DEFAULT
FIXEDSYS MS Pゴシック MS P明朝 MS SAANS SERIF MS SERIF MS ゴシック MS 明朝 SMALL FONTS
SYMBOL SYMBOL1 WINGDINGS WINGDINGS2
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes
@MS Shell Dlg @標準ゴシック @標準明朝 Arial Baltic,186 Arial CE,238 Arial CYR,204 Arial Greek,161
Arial TUR,162 Courier New Baltic,186 Courier New CE,238 Courier New Arial CYR,204 Courier New Arial Greek,161
Courier New TUR,162 Helv Helvetica MS Shell Dlg MS Shell Dlg 2 Times Times New Roman Baltic,186
Times New Roman CE,238 Times Times New CYR,204 Times New Roman Greek,161
Times New Roman TUR,162 Tms Rmn クーリエ ゴシック ゴシック タイムズロマン ヘルベチカ 標準ゴシック 標準明朝
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts
中に入っているファイルが、大すぎるので必要な内容を指定してもらえないでしょうか
-
取り敢えず、文字化けせずに動作している WindowsXP のレジストリの値と文字化けしてしまう WindowsXP の値を比較されては如何でしょうか。
例えば、
-
FontMapper の下の DEFAULT の値は 128 になっていて、同じように MS Pゴシックの値は 128 になっていますか?
-
Fonts の下には「MS ゴシック & MS Pゴシック & MS UI Gothic (TrueType)」や「MS Gothic & MS PGothic & MS UI Gothic (TrueType)」が存在して、msgoth04.ttc の値を持っていますか?
これは XP Embedded の話 (しかも日本語MUIの話)ではあるのですが、
http://support.microsoft.com/kb/418877/ja
このあたりのキーが壊れると日本語表示はおかしくなると思われます。
-
-
MSゴシック&MS Pゴシック(True Type).ttc は、多分間違いだと思います。
このフォント回りのレジストリ破損を修復してみるのは如何でしょうか?
以前、
また、別のPCで試したところ正常に表示されました。
と書かれていらっしゃいますから、比較可能なWindowsXP(?) PCが存在するものと推測いたしました。ですから、
-
正しく動作するPCの該当するレジストリをレジストリエディタでエクスポートして、正しく動作しないPCのレジストリを変更する(に結合する)
-
正しく動作するPCの該当するレジストリを印刷して、正しく動作しないPCでレジストリエディタを動かして1つずつ修正する
-
...
など、という作業になると思います。
-