「VC PlusPlus UTF-8によるプログラミングを推進するための大切な設定」の版間の差分

提供:yonewiki
(ページの作成:「<yjavascript></script> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.11.1/styles/vs2015.css"> <link rel="stylesheet" href="https://wiki.yo-net.jp/custom.css"> <script src="https://wiki.yo-net.jp/highlight/highlight.js"></script> <script src="https://wiki.yo-net.jp/custom.js"></script> <script type="text/javascript" charset="UTF-8" src="https://wiki.yo-net.jp/highlight/highlightjs-vba/dist/vba.min.js"></script> <script type="text…」)
 
67行目: 67行目:
}</code></pre></div>
}</code></pre></div>
<script></yjavascript>
<script></yjavascript>
 以上の設定でUTF-8の世界に積極的に踏み込んだことになると思います。但し過去の財産はSJISであるものが多いので、SJISであるがゆえの文字化けについては都度対応して受け止めていく必要がありますが、対応していくことが正しい姿勢であると思いましょう。ちなみに手順の項目2.によってソース内がUTF-8によって書かれていて、SJISで変換表示できない文字があった場合に以下のような警告が表示されていた以下の内容が解決します。
warning C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。


 
 


[[メインページ#言語と開発環境|言語と開発環境]]へ戻る。
[[メインページ#言語と開発環境|言語と開発環境]]へ戻る。

2025年10月10日 (金) 17:00時点における版

言語と開発環境へ戻る。

概要

 MicorsoftはShift_JISつまりSJIS(CP932)を使ってきた関係で、いまだにVisualStudioにおいてプロジェクトのコードページ規定値をUTF-8にできていません。


 でも機は熟したと言える現代の文字コード環境になったと言える時代を迎えていると思います。VisualStudioを使っていくにあたって基本設定をUTF-8にしてみませんか?コマンドプロンプトの既定の文字コードはSJISだし。弊害ありそうに感じますが、コンソールアプリケーションを起動した直後にUTF-8での入出力に切り替える命令もありますので、UTF-8でのコンソールアプリにしていけると思います。壁にぶち当たったときにSJISに戻すというやり方にしないと、いつまでたっても切り替わらないような気がします。まずは一歩踏み出してみましょう。

 

設定

1.まずはなるべくソースコードをUTF-8で保存するためのオプションを設定しよう。


 メニューの[ツール]-[オプション]から[環境]-[ドキュメント]の項目を開きます。


 *特定のエンコードでファイルを保存というチェックをONにします。そして選択リストから[Unicode(UTF-8 署名付き) コードページ65001]を選択しましょう。


 *コードページの文字コードでデータが保存できない場合、Unicodeでドキュメントを保存するのチェックもONにしておこう。


 これでドキュメントが極力UTF-8が使われることになります。


2.新規作成するプロジェクトのC/C++のコンパイルオプションを追加しよう。


 ソリューションエクスプローラーでプロジェクトを選択して、メニューの[プロジェクト]-[(プロジェクト名)のオプション]を選択。


 表示されたウィンドウの[構成プロパティ]-[C/C++]-[コマンドライン]を表示して、追加のオプションに


 /utf-8


 を追加。デバッグ版もリリース版もどっちの構成にも設定しよう。


3.コンソールプログラムを組むときは以下のコードを追加しよう。UTF-8を使ってコマンドプロンプトの日本語入出力ができるように切り替わります。


#include <Windows.h>

int main() {   SetConsoleOutputCP(CP_UTF8);   SetConsoleCP(CP_UTF8);   …   return 0; }


 以上の設定でUTF-8の世界に積極的に踏み込んだことになると思います。但し過去の財産はSJISであるものが多いので、SJISであるがゆえの文字化けについては都度対応して受け止めていく必要がありますが、対応していくことが正しい姿勢であると思いましょう。ちなみに手順の項目2.によってソース内がUTF-8によって書かれていて、SJISで変換表示できない文字があった場合に以下のような警告が表示されていた以下の内容が解決します。


warning C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。

 

言語と開発環境へ戻る。