全く同じコードでエラー
- 評価
- クリップ 0
- VIEW 615

退会済みユーザー
java初心者のものです。
全く同じコードにも関わらず、なぜエラーが出るのでしょうか。
*質問に至るまでの流れ*
現在参考書を使ってjavaの勉強をしているのですが、どうしてもうまくいかない部分があり、参考書の付録の完成されたフォルダ(ファイルが複数あります)をダウンロードして、うまくいかなかったファイルのコードをコピペしました。しかしそれでもうまくいかなかったため、次にダウンロードしたファイルをそのまま実行してみたところうまく行きました。このため試しに、うまくいかなかった部分のコードを完成品からコピペして新しいフォルダを作成し、それをダウンロードしたフォルダの中に入れて実行してみたところ、うまくいきませんでした(元のファイルは消しました)。
全てダウンロードしたファイルで実行 → 実行可能
一部新しいファイル(コードは完成品をコピペ)、その他ダウンロードしたファイルで実行 → エラー
エラーは「この文字は、エンコーディングSJISにマップできません」というものです。
※UTF-8なども試しました。
全く同じコードにも関わらず、なぜエラーが出るのでしょうか。
理由を教えていただけると大変助かります。
よろしくお願い致します。
使用しているテキストエディタはsublimeです。
参考書は「なぜ、あなたはJavaでオブジェクト思考開発ができないのか」です。
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
+6
全く同じコードにも関わらず、なぜエラーが出るのでしょうか。
DIFFは取って見ましたか?目視で同じプログラムと判断すると危険ですよ。
エラーメッセージから推測するに文字コードが違ってるんじゃないですかね。
エラーになるっていうのは必ず原因があるので、人間には同じコードに見えても、コンピュータとしては別物だからエラーになるんです。
同じUTF-8でもBOMあり/BOMなしがあったり(人の目には違いはわかりません)
あとよくあるのは、コピペしたことによって、見えないバイナリ文字が含まれてることもあります。
バックスペース2回押したら文字が消えるとか現象としてはあります。(1回目の削除でバイナリ文字が消えた)
バイナリエディタで見てみると変な制御文字が含まれていたとかよくあります。
また、改行コードは CR/LF/CR+LFといった具合にOSによって異なるのでダウンロードしたソースがどの環境で作成されたのかによって、挙動が変わることもあります。
文字コードと改行コードの問題は開発終盤で見つかると厄介なので、序盤からルールを決めて複数人で作業する場合、開発環境の統一および、設定の統一などをします。
もうひとつ。開発環境はフォーマッターというコードの自動整形を備えているものもあり、フォーマット設定が人によって違うと、勝手にソースを修正してしまうのでgitやsvnなどで衝突しまくるなどもあります。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
+2
ダウンロードしたソースファイルとあなたが作成したソースファイルのコード体系が異なるんですね。
同じ文字でもコード体系によって違う文字になり、読み込むことができないためです。
EBCDIC,ASCII,ANSI,JISなど色々あります。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
checkベストアンサー
+1
SublimeはシフトJISに対応していないようです。
ConvertToUTF8というプラグインを入れるか、
他のエディタ/ツールを使ってUTF-8などに変換して下さい。
もしくは他のエディタを使って下さい。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
+1
大体の参考書には、演習問題を行う為の実行環境についての説明があるはずです。
質問者様が見落としをしているので無く同じ環境で行われているのであれば、
コピペ程度でエラーが起きることは考えにくく、コピペする際に使用したエディタが前提に無いものを使用されたのではないでしょうか?
基本的に文字コードを合わせれば解決しそうですが、演習で使用されている環境(eclipse等のツール、文字コード)やコピペをどのようなエディタを使用されたか等の情報があれば、もっと的確な回答が得られるかもしれません。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 90.35%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
質問への追記・修正、ベストアンサー選択の依頼
fuzzball
2017/09/11 11:40 編集
そのエラーは何が出しているエラーなのでしょうか?他のエディタだとどうなるでしょうか?
退会済みユーザー
2017/09/11 11:48
コマンドプロンプトで出しているエラーです。他のエディタでは試していないので、後で試してみます。
fuzzball
2017/09/11 11:50
コンパイラが出しているということでしょうか?「この文字は、エンコーディングSJISにマップできません」でググると多数の情報が見つかりますが、どれもダメだったんでしょうか?
退会済みユーザー
2017/09/11 11:54
記事のタイトル見て試してみましたが、どれもだめでした。(どれもencodingを利用すれば大丈夫という記事でした)
fuzzball
2017/09/11 11:57 編集
「UTF-8なども試しました」というのは、そのエディタ上でUTF-8に変換したのでしょうか?あと、OSは何でしょうか?
退会済みユーザー
2017/09/11 12:02
UTF-8に変換しました。OSはwindows8.1です。
fuzzball
2017/09/11 12:32
そのエディタ上で変換したのですか?と聞いているのですが。