- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ワイド文字(列)について)
ワイド文字列表示で表示が「?」になる原因は何でしょうか?
このQ&Aのポイント
- ワイド文字(列)について質問です。printf()などより、wprintf()などのワイド文字を扱える関数を使おうと思っているのですが、うまく表示されません。何が原因なのでしょうか?
- wprintf(L"%s\n", data);は表示はされるのですが、「?」になります。
- 環境はXPとVisual Studio 2005です。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
単にロケールの設定が足りないだけでしょう。 #include <locale.h> setlocale(LC_ALL, "japanese"); MSDN setlocale http://msdn.microsoft.com/ja-jp/library/x99tb11d%28VS.80%29.aspx
その他の回答 (3)
- bluecampus
- ベストアンサー率66% (138/209)
回答No.4
>ただ、フォントの関係で表示できるかはわかりません。 ではないですね。 リンク先に >オペレーティング システムがサポートしていない言語は setlocale で使用できません。 って書いてありましたね。
質問者
お礼
色々調べてみたのですが、 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 ありがとうございました。
- bluecampus
- ベストアンサー率66% (138/209)
回答No.3
リンク先をたどればいけそうなんだけど。 http://msdn.microsoft.com/ja-jp/library/39cwe7zf%28VS.80%29.aspx ただ、フォントの関係で表示できるかはわかりません。
- Tacosan
- ベストアンサー率23% (3656/15482)
回答No.1
ひょっとして L"%ls\n" としたかった?
質問者
お礼
回答ありがとうございます。 "%ls"で再度試してみたのですが出来ませんでした。
お礼
出来ました。 ありがとうございます。 setlocale()が必要なんですね。 調べてもsetlocale()が必要とは書いてなかったので、 助かりました。 1つ疑問があるのですが、 setlocale(LC_ALL, "japanese");の"japanese"なのですが、 japaneseという事は日本語のみになるのではないでしょうか? 他の言語(中国語など)も扱う場合などはどうすればいいのでしょうか?