• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ワイド文字(列)について)

ワイド文字列表示で表示が「?」になる原因は何でしょうか?

このQ&Aのポイント
  • ワイド文字(列)について質問です。printf()などより、wprintf()などのワイド文字を扱える関数を使おうと思っているのですが、うまく表示されません。何が原因なのでしょうか?
  • wprintf(L"%s\n", data);は表示はされるのですが、「?」になります。
  • 環境はXPとVisual Studio 2005です。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

単にロケールの設定が足りないだけでしょう。 #include <locale.h> setlocale(LC_ALL, "japanese"); MSDN setlocale http://msdn.microsoft.com/ja-jp/library/x99tb11d%28VS.80%29.aspx

noname#154655
質問者

お礼

出来ました。 ありがとうございます。 setlocale()が必要なんですね。 調べてもsetlocale()が必要とは書いてなかったので、 助かりました。 1つ疑問があるのですが、 setlocale(LC_ALL, "japanese");の"japanese"なのですが、 japaneseという事は日本語のみになるのではないでしょうか? 他の言語(中国語など)も扱う場合などはどうすればいいのでしょうか?

その他の回答 (3)

回答No.4

>ただ、フォントの関係で表示できるかはわかりません。 ではないですね。 リンク先に >オペレーティング システムがサポートしていない言語は setlocale で使用できません。 って書いてありましたね。

noname#154655
質問者

お礼

色々調べてみたのですが、 setlocale(LC_CTYPE, ""); で出来るということなのでやってみたらできました(たぶん)。 「Japanese_Japan.932」が返ってきたのでこれでいいと思います。 他の言語では試せないので分かりませんが。 http://www.bugbearr.jp/?%E6%96%87%E5%AD%97%E3%82%B3%E3%83%BC%E3%83%89%2FAPI http://d.hatena.ne.jp/s-kita/20080712/1215827470 ありがとうございました。

回答No.3

リンク先をたどればいけそうなんだけど。 http://msdn.microsoft.com/ja-jp/library/39cwe7zf%28VS.80%29.aspx ただ、フォントの関係で表示できるかはわかりません。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

ひょっとして L"%ls\n" としたかった?

noname#154655
質問者

お礼

回答ありがとうございます。 "%ls"で再度試してみたのですが出来ませんでした。

関連するQ&A