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

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

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

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

2回答

5040閲覧

AtomでなぜかBOMがついてしまう

Sora17

総合スコア8

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2020/05/15 13:30

編集2020/05/16 01:34

背景

普段はEclipseを使用しているのですが、所用があって
テキストエディタ「Atom」で.Javaファイルを編集しています。
コマンドプロンプトにてコンパイル処理をしたところ
「\ufeffは不正な文字として…」といったメッセージが表示されました。
調べてみたところ、これはutf-8のBOMが悪さをしているようです。

困っていること

Atomは標準設定ではutf-8はBOM無しだと思うのですが
なぜかBOMがついてしまいます。

同じ症状になったことがある方
解決したことがある方

ぜひ回答いただきたいです。よろしくお願いします。

補足

.javaファイルのコードエラーはありません。
またAtomの設定をいじった記憶がありません。

こちら本件の画像です。
イメージ説明

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

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

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

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

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

m.ts10806

2020/05/15 13:34

もともとAtomで作ったものなんでしょうか
Sora17

2020/05/15 13:38

該当のファイルはAtomで最初から作っています!!
退会済みユーザー

退会済みユーザー

2020/05/15 14:12

通常いうところの文字コードは以下の通りだからでは? UTF-8 : BOMあり UTF-8N : BOMなし
Sora17

2020/05/15 23:21

Atomですと、 UTF-8Nといった文字コード表記がありません…。
退会済みユーザー

退会済みユーザー

2020/05/16 00:23

日本人の事情だったのか(・q・
退会済みユーザー

退会済みユーザー

2020/05/16 03:43

atomは自動で文字コードを判定しないと書いてあったけど(github issue) 実装されたのかな
guest

回答2

0

ベストアンサー

AtomではBOMを示すU+FEFF(たぶん見えません)はただのZERO WIDTH NO-BREAK SPACE(零幅ブレーク無しスペース)文字として扱います。ファイルの先頭にU+FEFFがあった場合、零幅のスペース文字なので視覚的には見えませんが、手動で削除しない限り存在し続けます。

例えば、一度メモ帳などでファイルを作成して、UTF-8(BOM付き)で保存した場合、それをATOMで開くとUTF-8として読み込みます。そのとき、ファイルの一番最初の文字はU+FEFFもちゃんと文字として読み込まれます。それを、ATOMで保存したとき、ファイルの一番最初の文字であるU+FEFFも(手動で削除していない限り)書き込まれます。それを、メモ帳などで開くと、UTF-8(BOM付き)と判定されて、U+FEFFはBOMとして、テキストには現れなくなります。

U+FEFFは目には見えなず、幅もゼロなので、ぱっと見で存在するかどうかは確認することはできません。しかし、カーソルを右左に動かすと、見えない一文字があることを確認できるはずです。charcode-displayを使ってUnicode番号を確認しても良いでしょう。

隠された零幅ブレーク無しスペース

文字の削除は他の文字と同様に単純にDELやBSで削除できます。

投稿2020/05/16 04:52

編集2020/05/16 04:56
raccy

総合スコア21739

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

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

Sora17

2020/05/16 10:53

回答ありがとうございます。 暫定的な対処法として、Atomで編集し終えたらメモ帳を開き、BOMなしで保存するようにしてました。 カーソルで左右動かすと文字が見えることや、DELやBSで削除できてしまうことは知らなかったです。 ありがとうございました。
guest

0

「\ufeffは不正な文字として…」といったメッセージが表示されました。

おそらく、BOM付きUTF-8 ではなく、UTF-16 BE になっていると思います。
ググりましたが、Atom はBOM付きUTF-8をサポートしていません。

それで、ファイルを編集しているときに一番下の行に文字コードが表示されていると思うのですが、そこが「UTF-16 BE」になってませんか?なっていれば、そこをクリックして「UTF-8」に変えてください。

投稿2020/05/15 23:27

編集2020/05/15 23:50
mit0223

総合スコア3401

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

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

mit0223

2020/05/15 23:51

asahina1979様 ご指摘ありがとうございました。修正しました。
Sora17

2020/05/16 01:31

回答ありがとうございます。 コードの下は確かにUTF-8になっています。 一度変更してから再度UTF-8に変えてみることも試しましたが こちらも反応はありませんでした。
Sora17

2020/05/16 01:35

一応ですが、補足用として画像を添付しました。 参考になれば幸いです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問