現在のコードページで表示できない文字を含んでいます。

VisualStudio2013以降で以下警告メッセージが出た時の対処法です。

コードページの警告

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

このメッセージが出た時は、対象のファイルをVS上から開いて

ファイル > 保存オプションの詳細設定

で表示されるダイアログの「エンコード」のコンボボックスで、Unicode (UTF-8 シグネチャ付き) - コードページ 65001を選択しましょう。

f:id:Takachan:20160404181123p:plain

VisualStudio2012以前は環境が無いので不明ですがテキストエディタから同じ事指定すればよいのではないでしょうか(適当)

コードページって・・・

Unicode形式と言われてようやくエンコードの事だとわかるけど、コードページってなんだよって思ってwiki見たら

コードページとは、特定の符号化文字集合を指定するための数字、またはその数字で指定された符号化文字集合、あるいはそのような方法で符号化文字集合を指定するためのシステムのことである。 cpと表示されることもある。 それぞれの符号化文字集合は「コードページ○○(○○は2桁から5桁の数字)」という形で管理される。

・・・・?!日本語でOK

ファイルのエンコードの事と思えばいいですよね。

多分それ以外の何かも合わせて指してるからコードページなんでしょうね。


「符号化文字集合がぁ~すうじでぇ~表せるなんて超ウケるんですけどぉwww」

「逆にぃ~数字でぇ~指定されたぁ~符号化文字集合っていうと~なんかぁにゃんついてない~?」

んー・・・ギャルに言わせても分からないですw

ソースを修正したくない人向け

プロジェクトのコンテキストメニューから

プロパティ > 構成プロパティ > C/C++ > 詳細設定 > 指定の警告を無効にする

の項目から編集で4819を追加します

f:id:Takachan:20160404182109p:plain

この警告が実は有害なのか、無害なのか今のところ判断しかねます。。。

Macファイル形式によるコンパイルエラー

リポジトリからチェックアウトしてきたらこんなメッセージが・・・

hogehoge.cpp : error C4335: Mac ファイル形式が検出されました: ソース ファイルを DOS または UNIX 形式に変換してください。

確かに直前にMacで編集してましたけど、Macファイル形式ってなんだよ!

って思ったらこれ、改行コードの事なんですね・・・

これもVisualStudio2012以降ならコードページのダイアログから指定できます。

ファイル > 保存オプションの詳細設定

で表示されるダイアログの「行の終わり」のコンボボックスで、Unix (LF) か Windows (CR LF) のどっちかを選びましょう。

多分Macで編集する or WindowsでもAndroidStudio等で何かする気があるならLF、Windowsでしか扱わないならCR LFでいいと思います。