コマンドプロンプト上で、UTF-8のexeファイルを実行してみたのですが、文字化けしてしまいます。
コマンドプロンプトの設定で、フォントを「MSゴシック」には変更しました。
後、「chcp 65001」も実行しています。
typeコマンドでUTF-8のテキストファイルの中身を見た場合は文字化けが起こりません。
以下、環境を書いておきます。
OS: Windows 7 Home Premium 32bit
コンパイラ: MinGW gcc 4.6.2
文字コードをUTF-8にしたままでOKな改善策があれば、ご教授お願いします。
No.2ベストアンサー
- 回答日時:
手元にある MinGW 4.5.0 で試してみました。
(Win7 Pro 64bit下)printf("秒\n"); するだけのソースをUTF-8で保存し、引数なしでコンパイルしました。
・何もしていないコマンドプロンプトでの結果
遘・
・フォントをMSゴシック、chcp 65001実行後の結果
秒
plot02さんの出力も「遘・」ですので、プログラムは問題ないのではないでしょうか。
試しにリダイレクトで出力結果を拾ってみてはどうですか(test.exe >output.txt)
chcp前でもUTF-8形式で「秒」を確認できました。
chcpのトラブルのようですが、あまり情報がないですね。
こちらはどうでしょうか。
・教えて!Ziddyちゃん - UTF-8を表示できるWindows環境下のコンソール
http://ziddy.japan.zdnet.com/qa5051484.html
回答ありがとうございます。
こちらでも、printfを使うと文字化けが起こらなかったです。
それに対し、coutを使うと文字化け……。
なお、リダイレクトで出力結果を見た場合は、両方の場合とも、普通に読めました。
教えていただいた質問の方ですが、regeditを使う方法は効果なしでした。
後はcygwin + TeraTermという解決策しかなさそうですかね?
そうなると現状のままでいいかな、という心情です。printfを使えば問題ないので。
No.5
- 回答日時:
wcout自体は先ほど試していたのですが、ロケールの指定はやっていませんでしたので試してみました。
locale loc("");
cout.imbue(loc);
wcout.imbue(loc);
cout << "秒1" <<endl;
wcout << L"秒2" <<endl;
結果は、wcoutの方からは何も出力されませんでした。
(coutはNo.1のお礼にあるのと同じ文字化け)
localeに「ja_JP.UTF-8」や「japanese」を入れたら実行時エラーになりました。
回答ありがとうございます。
こちらも同じような結果です。
それで、localeに「ja_JP.UTF-8」を入れた時に出る実行時エラーのwhat()を検索してみましたが、どうやらcoutの問題ではなく、libstdc++の方の問題みたいです。
http://d.hatena.ne.jp/eagletmt/20090208/1234086332
なので、C++でlocale設定を使うのは、とりあえず諦めることにします。
No.4
- 回答日時:
>こちらでも、printfを使うと文字化けが起こらなかったです。
>それに対し、coutを使うと文字化け……。
試したワケではありませんが……
「cout ロケール」で検索してみたら下記のようなページが。
http://www.kijineko.co.jp/tech/cppsamples/stdout …
使えるか判りませんが、wcoutではどうなのでしょう??
回答ありがとうございます。
軽く調べた感じ、gccだと、C++のロケール設定ができないみたいです。
多分Visual C++の方だと成功するのかもしれません。
実装の問題みたいなので、難しいですね。
No.3
- 回答日時:
c++にて試したところ、こちらでも同じ症状となりました。
簡単に思いつくことは試しましたが解決できず、原因もわかりません。
printfを使うことで回避可能であればそれが一番いいと思います。
No.1
- 回答日時:
具体的に「どういうプログラムを」「どう実行したときに」「どう文字化けするのか」はわかりませんか?
回答ありがとうございます。
プログラムは、累乗計算を行なって、処理時間を文字で表示するものです。
MinGWのg++で、UTF-8エンコード(CRLF)のソースファイルを、とくにオプションを付けずにコンパイルしました。
gccのデフォルトがUTF-8みたいなので、UTF-8にはなっていると思うのですが…。
実行時は、CP932のときは「秒」が「遘・」と文字化けします。
CP65001のときは「秒」(コピー&ペースト)という3文字になります。
(表示は「γ」「『○』の下に『_』」「『f』と『E』の合字みたいな文字」)
なお「-finput-charset=UTF-8」, 「-fexec-charset=UTF-8」をオプションを付けても変化なしです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux テキストファイルをページ番号付きでコマンドラインから印刷したい 1 2023/02/22 12:47
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Excel(エクセル) 文字化け。メモ帳でUTF-8に変換後、エクセルへ貼り付けたいです。 3 2022/08/14 07:21
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- その他(ソフトウェア) powershell で出力したテキストファイルをvim で開くと文字化け 2 2023/01/11 21:39
- PHP phpのメールフォームの完了画面でメール受信のコードを書いています。 1 2023/05/31 11:39
- HTML・CSS <meta charset="utf-8"><!-- 文字化け防止ユニコード --> ?最近モバイル 1 2022/12/11 04:27
- JavaScript HTMLでJavaScriptを使ってパスワードの強化判定のプログラムを作成しています。 一通り作っ 2 2022/10/19 01:41
- その他(インターネット接続・インフラ) Webサイトのフォント・級数変更について 1 2022/10/18 18:08
- Windows 8 メモ帳による文字コード変換 2 2022/09/01 18:38
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・【選手権お題その3】この画像で一言【大喜利】
- ・【お題】逆襲の桃太郎
- ・自分独自の健康法はある?
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・ちょっと先の未来クイズ第6問
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Macターミナルで実行中のプログ...
-
sendkeysにてALT+CTRL+INSERTを...
-
RPG パラメーターについて
-
終了してもプログラムが実行し...
-
C言語でフォルダを開く
-
プログラムの再起動
-
vba GetAsyncKeyState関数について
-
いきなり、count++; とありま...
-
C言語で途中までしか、プログラ...
-
他のPC上にあるexeを、そのP...
-
コマンドプロンプト プログラム...
-
clock関数は正確じゃないの?
-
アクセス[ファイルを開かずに、...
-
C言語でプログラムを再起動
-
ExcelのVBAでX=0〜1の定積分を...
-
システム資源とは?
-
sleep()関数について
-
実行中の実行ファイルの上書き
-
Visual Studio デバッグ実行で...
-
プリントスクリーンをプログラ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Macターミナルで実行中のプログ...
-
C言語で途中までしか、プログラ...
-
他の実行ファイルを実行するプ...
-
sendkeysにてALT+CTRL+INSERTを...
-
VBAで外部プログラムを非表示で...
-
VB上で実行中の無限ループの止め方
-
Windows10でDOSゲーム
-
RPG パラメーターについて
-
C言語でフォルダを開く
-
プロセス間通信について
-
並列計算をしたときのシステム...
-
MACで動く実行ファイルをWindow...
-
バックグラウンドからフォアグ...
-
C言語でプログラムを再起動
-
clock関数は正確じゃないの?
-
他のPC上にあるexeを、そのP...
-
ヘッダファイル? malloc.hと...
-
実行時エラー429
-
システム資源とは?
-
一定時間たつと、リセットしたい
おすすめ情報