« [R]平均を求める | トップページ | [gfortran]エラーメッセージ「libgfortran-5.dllが見つからないため、コードの実行を続行できません。プログラムを再インストールすると、この問題が解決する可能性があります。」 »

2026年4月22日 (水)

[Visual C++]警告メッセージ「ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存し てください。」

コマンドプロンプトのコンパイラーcl.exeでコンパイルをした時にこの警告メッセージが表示された場合は、ソースファイルの文字コードがUTF-8で保存されているのに、cl.exeはShift_JISとして処理しようとしている。通常は自動で判定してくれるが、失敗してこのようになる場合がある。

これを解決するには、コンパイラーにソースコードがUTF-8であることを/source-charsetオプションで与えればよい。なお、実行ファイルの実行時の文字コードを指定するには、/execution-charsetオプションを使えばよい。以下、例。

以下のソースコードを、文字コードをUTF-8に指定してtakada_utf-8.cと保存する。

#include 
int main() {
printf("停雲役の高田憂希さん、かわいい。\n");
return 0;
}

コンパイルして実行してみる。

>cl takada_utf-8.c
Microsoft(R) C/C++ Optimizing Compiler Version 19.44.35215 for x86
Copyright (C) Microsoft Corporation. All rights reserved.
takada_utf-8.c
takada_utf-8.c(1): warning C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。
Microsoft (R) Incremental Linker Version 14.44.35215.0
Copyright (C) Microsoft Corporation. All rights reserved.
/out:takada_utf-8.exe
takada_utf-8.obj
>takada_utf-8
蛛憺峇蠖ケ縺ョ鬮倡伐諞ょク後&繧薙�√°繧上>縺・�・n
>cl /source-charset:utf-8 takada_utf-8.c
Microsoft(R) C/C++ Optimizing Compiler Version 19.44.35215 for x86
Copyright (C) Microsoft Corporation. All rights reserved.
takada_utf-8.c
Microsoft (R) Incremental Linker Version 14.44.35215.0
Copyright (C) Microsoft Corporation. All rights reserved.
/out:takada_utf-8.exe
takada_utf-8.obj
>takada_utf-8
停雲役の高田憂希さん、かわいい。
>cl /source-charset:utf-8 /execution-charset:sjis takada_utf-8.c
Microsoft(R) C/C++ Optimizing Compiler Version 19.44.35215 for x86
Copyright (C) Microsoft Corporation. All rights reserved.
takada_utf-8.c
Microsoft (R) Incremental Linker Version 14.44.35215.0
Copyright (C) Microsoft Corporation. All rights reserved.
/out:takada_utf-8.exe
takada_utf-8.obj
>takada_utf-8
停雲役の高田憂希さん、かわいい。

« [R]平均を求める | トップページ | [gfortran]エラーメッセージ「libgfortran-5.dllが見つからないため、コードの実行を続行できません。プログラムを再インストールすると、この問題が解決する可能性があります。」 »

Visual C++」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

« [R]平均を求める | トップページ | [gfortran]エラーメッセージ「libgfortran-5.dllが見つからないため、コードの実行を続行できません。プログラムを再インストールすると、この問題が解決する可能性があります。」 »

無料ブログはココログ

■■

■■■