コマンドプロンプトでUTF-8

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
Ohagi
記事: 31
登録日時: 3年前

コマンドプロンプトでUTF-8

#1

投稿記事 by Ohagi » 3年前

Visual Stduioの「開発コマンドプロンプト for VS2015」を使ってC言語をコンパイル、実行しています。

C言語のソースファイルは互換性のためUTF-8で記述しているのですが、コマンドプロンプトで文字化けしてしまいます。

コマンドプロンプトのデフォルト文字コードがshift_jisということで、chcp65001でutf-8に設定してみましたが

なぜかchcp65001をするとフォントに日本語対応フォントがないため、文字コードを変更しても日本語がうまく表示できません。

オリジナルのゲームやソフトを作っているわけではなく、参考書のサンプルプログラムを何個も作っている状況なのでプロジェクトフォルダを作成するIDEは極力使いたくありません。

質問に適当な場所が思いつかなかったのでこちらで質問しましたが、C言語フォーラムでの質問が不適切であれば削除しようと思います。

詳しい方回答よろしくお願いします。

YuO
記事: 936
登録日時: 8年前
住所: 東京都世田谷区

Re: コマンドプロンプトでUTF-8

#2

投稿記事 by YuO » 3年前

clのコマンドラインオプション/source-charsetと引数utf-8を使う (/source-charset:utf-8) ことで,ソースファイルの文字コードをUTF-8にすることができます。
また,/execution-charsetの指定で,実行環境の文字コードを設定することができます。
どちらもutf-8にしたいのであれば,/utf-8というオプションもあります。

ただし,どれもVisual Studio 2015 Update 2の新機能になります。
Update 2への更新をしていない場合は,Update 2に更新してください。

reference)
New Options for Managing Character Sets in the Microsoft C/C++ Compiler | Visual C++ Team Blog

Bull
記事: 126
登録日時: 5年前

Re: コマンドプロンプトでUTF-8

#3

投稿記事 by Bull » 3年前

環境によっても違うかもしれませんが、UTF-8を表示するには、コードページを
65001に変更する必要があり、デフォルトのフォントでは表示できないようです。
MSゴシックに変更すれば表示できますが、先にコードページを65001に設定する
とMSゴシックが選べないようなので、その場合は一旦コードページを932に戻し
てフォントをMSゴシックにして、再度コードページを65001にすればUTF-8の
文字を表示できるようになります。

Ohagi
記事: 31
登録日時: 3年前

Re: コマンドプロンプトでUTF-8

#4

投稿記事 by Ohagi » 3年前

YuOさんの回答にあったコマンドラインのオプションを用いるというもので

無事utf-8のCソースを文字化け無しでコンパイル、実行することができました!

Bullさんの方法はネット上に記載があったので試したのですが

やはりコードページ65001に直すとフォントは強制変更&日本語フォント設定不可能になります。

WIndows8.1で仕様が変わったのでしょうか?

回答してくださった御二方、ありがとうございました。

閉鎖

“C言語何でも質問掲示板” へ戻る