質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%

Q&A

解決済

3回答

8202閲覧

Visual Studio Codeにて、エンコード種類を追加したい

dodo-taka

総合スコア14

0グッド

1クリップ

投稿2017/07/04 05:01

編集2017/07/04 05:53

Visual Studio Codeにて、UTF-8 with BOMで開きたいのですが、
エンコード一覧に、表示されません。

追加方法教えて頂けませんか。

↓ 実際のエンコード指定画面
エンコード付きで再度開くの画面

環境
windows7 pro 64bit
VSCバージョン(下図)
VSCバージョン

補足
エンコードの設定

補足2
ファイルをバイナリ確認

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/07/04 08:15

カスタマイズは補足に書かれている分だけで、Sublime Textで言うEncodingHelperの様な、自動判定のサポートを行なう様なタイプの拡張機能は一切入れていないという事でよろしいでしょうか?
dodo-taka

2017/07/04 08:34

そうですね。自動判定の拡張はいれていません。
guest

回答3

0

こちらで試してみた感じ(Windows 10で実行バージョンは同じ)では、

"files.encoding": "utf8"でUTF-8 with BOMのファイルを開くと、エンコード付きで再度開くでUTF-8 with BOM コンテンツから推測がトップに表示され、

"files.encoding": "utf8"の場合

"files.encoding": "utf8bom"で同じファイルを開くと、エンコード付きで再度開くでUTF-8 with BOM コンテンツから推測は表示されずにUTF-8がトップに表示されるみたいです。
で、UTF-8を選んでもBOMの有無は判定してくれます。

"files.encoding": "utf8bom"の場合

UTF-8のBOMの有無の判定に"files.autoGuessEncoding"が有効かは関係ないようですね。


とあるファイルが初回は、UTF-8 with bomで開くのですが、

2回目以降、日本語部分が文字化けしてしまいます。
エンコード情報を見ると、UTF-8になっており、with bomにする必要があるのでは?
と考えていました。

UTF-8 と UTF-8 with BOMって先頭に0xEF 0xBB 0xBFのバイトオーダーマークがあるかないかの差だけで、仮にUTF-8 with BOMをUTF-8と誤判定したとしてもバイトオーダーマークの部分しか文字化けしないのでは?と思うのですがどうでしょう?
UTF-8にBOMがあると受け付けないコンパイラはたしか、そういった動作だったと思います。

投稿2017/07/04 06:43

編集2017/07/04 08:12
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dodo-taka

2017/07/04 07:32

「コンテンツから推測」は、どこに表示されるのでしょうか。
退会済みユーザー

退会済みユーザー

2017/07/04 07:42

"files.encoding"のそれぞれでの設定でのスクリーンショット追加しました。
dodo-taka

2017/07/04 07:51

ありがとうございます。
guest

0

UTF-8 を指定して開けばよくて、その場合BOMは自動認識されてステータスバーのencoding表示が UTF-8 with BOM にちゃんとなります。

問題は、コンテンツから推測 の部分が UTF-8 with BOM になっていないことです。BOM付きUTF-8のファイルをReopen with Encodingで開き直そうとすると コンテンツから推測 に UTF-8 with BOM が表示されることを確認しました。

したがって、そのファイルがBOM付きUTF-8では ない 可能性を疑った方がいいんじゃないでしょうか。
もしくはVS Codeがおかしくなっている可能性もです。

前者についてはバイナリエディタで見ればすぐわかることですので確認をお勧めします。
後者については Save with Encoding に UTF-8 with BOM という選択肢がでるかどうかを確認するばいいと思いますが。

投稿2017/07/04 05:32

quickquip

総合スコア11038

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dodo-taka

2017/07/04 05:55

回答ありがとうございます。 問題のファイルをバイナリエディタで開いてみました。 0xEF 0xBB 0xBFとなっているますので、 with bomと思われます。 先程、当ファイルを別フォルダにコピペしただけで、 エンコード情報がwith bom以外になりました・・・ VSCodeがおかしいのでしょうか・・・
quickquip

2017/07/04 06:39

>先程、当ファイルを別フォルダにコピペしただけで、 > エンコード情報がwith bom以外になりました・・・ ファイルをコピーしたら中身が書き換わったように読めるのですが、違いますよね? すでに mattn さんのコメントについている通り、そのファイルの内容に依存しておきる現象なのか、あいうえお のようなテキストでも起きる現象なのか、といった切り分けが必要だと思います。
dodo-taka

2017/07/04 07:31

都合により、確認遅れますが、一度確認してみます。
退会済みユーザー

退会済みユーザー

2017/07/04 07:52

UTF-8とは直接関係無いですが、"files.autoGuessEncoding": trueでエンコードの自動判定を行う場合は、ひらがな漢字だと(全ての条件においてかは不明ですが)最低6文字含まれている必要があるみたいです。 あいうえおでShift_JISを判定しようとするとWestan (Windows 1252)で判定され、あいうえおかだとShift_JISで判定される。
dodo-taka

2017/07/04 08:40

下記のコメント欄でも記載させていただきましたが、 "files.autoGuessEncoding"の切り替え&VSC再起動で発生しなくなりました・・・
guest

0

ベストアンサー

BOM 付きの utf-8 で保存したいという事でしょうか?であれば設定にて

"files.encoding": "utf8bom"

これを追加して下さい。

投稿2017/07/04 05:06

mattn

総合スコア5030

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dodo-taka

2017/07/04 05:15

この設定を行っているのですが、「エンコード付きで再度開く」に表示されません。 実際の設定は、補足に追加します。
mattn

2017/07/04 05:17

UTF8 BOM で開きたいとの事ですが、おそらくですが BOM は自動認識ではないでしょうか?現状なにか問題が発生しているという事ですか?
dodo-taka

2017/07/04 05:26

とあるファイルが初回は、UTF-8 with bomで開くのですが、 2回目以降、日本語部分が文字化けしてしまいます。 エンコード情報を見ると、UTF-8になっており、with bomにする必要があるのでは? と考えていました。
mattn

2017/07/04 05:32

なるほど。試しに「あいうえお」と utf-8 で書いたファイルの先頭に BOM を付けて vscode で開き、一旦閉じたあと開き直してみましたが何も問題が発生しませんでした。 再現手順を教えて貰えますか。もし完全に再現する話であれば開発リポジトリへの issue 報告までは代行させて頂いても構いません。
dodo-taka

2017/07/04 07:05

再現手順ですが、 1 送られたファイルを開く → with bomで認識 2 編集&保存 3 再度開くと、without bomになっている です。
mattn

2017/07/04 07:45 編集

試してみましたが、`"files.encoding": "utf8bom"` の設定があってもなくても BOM 付きのファイルが正しく開く事が出来ていて、編集後に保存しても BOM は付いたままでした。ただし設定を行った状態だと新規ファイルは BOM で出力されるという動作になっています。
dodo-taka

2017/07/04 08:39

なぜか、"files.autoGuessEncoding"のtrue/falseを切替&VSCの再起動で、 エンコードの状況を確認していたら、 必ずwith bom付きで起動するようになりました・・・ その後、初回起動、2回目以降でも問題なくエンコード認識しています。 なんだったのでしょうか・・・VSCの問題?
mattn

2017/07/04 08:40

んーなんでしょうね。分かりません。
退会済みユーザー

退会済みユーザー

2017/07/04 08:58

"files.autoGuessEncoding"が既定でfalseなのは、"files.encoding"で指定したエンコードと一致していても自動判定を優先して行い、かつ何らかの誤判定を行なうパターンが存在するからって事なのかもしれませんね。
dodo-taka

2017/07/04 09:06

すみません。 再現できるといいのですが、今のところ、全く発生しなくなりました・・・
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問