NetBeans8.2の不可解なエンコーディングエラーの話
PHPやHTML5等の開発環境としては、世界三大IDEに数えられることもあるNetBeans。
初回起動に若干時間がかかるものの、作業中はとても軽いので愛用しています。
さて、そのNetBeans(以下NB)で、非常に不可解な現象がおきました。
NBのバージョンは8.2。
これ以前のバージョンでは、起こったことの無い現象です。
(起こったことがないだけで、実は存在はしていたのかも)
まず、NB内でPHPプロジェクト作成。文字コードはUTF-8。
プロジェクト内ソースフォルダにPHPファイル作成。
コードや文章を入力して保存。
で、次回開こうとすると
【エンコーディングUTF-8では正しく開けません。続行して開きますか。】
なんだと!
他の文字コードなど使った覚えはないぞ…。
まぁ、恐らくPHP内のHTML部分で発生したエラーだろうと思ったので、とりあえずHTML部を「上半分」「下半分」に分けたものをコピーして開き直してみる。
「上半分」:何事も無く開いた
「下半分」:
え、じゃぁ下半分に問題個所があるということか。
では下半分をさらに2つに分けて…。
「下半分の前半」:
「下半分の前半部」に原因がありそうなので、一行ずつ削除していって原因を突き止めることに。
ようやく、原因のある行が判明した。
当該行の内容
カレー煮込みうどんは、だしの効いたカレースープにシコシコと張りのある生めんを土鍋で煮込んだものです。
至って普通の文字列である。
改行コードを調べてみるも、ちゃんとCRLFとなっており、問題ない。
では単元ごとに削除して調べてみよう…。
「カレー煮込みうどんは、だしの効いたカレースープにシコシコ」
「カレー煮込みうどんは、だしの効いたカレースープにシ」
「カレー煮込みうどんは、だしの効いたカレースープに」
エラー無し
ここか!ここが原因なのか!
もしかすると、「に」と「シ」を隣接させると、変なコードと認識されてしまうのか?と思い
「カレー煮込みうどんは、だしの効いたカレースープに、」
なんでやねん!
「に」の後に何か一文字でも追加するとエラーが出る。
まさか文字数制限?
・・・ん?まてよ?文字数?
初回で問題なしと切り捨てた「内上半分」に、とても長い一行があることを思い出した。
個人名なども入っているので伏字にしますが、文字数はこんな感じ
現在も、●●氏は○○で手打ち製麺職人として麺食文化普及に取組んでいる一人ですが、当時、手打ち麺の魅力がはっきりわかる"ざるうどん"を世に送り出そうと思いつき、コシがあり、つるつるとしたのどごしの麺の上に揚げたてのアツアツの海老の天ぷらをのせ、新メニューを販売することになったのです。
これ。これだけの文が改行なしで一行に書かれていた。
(私が書いたんだけれども)
なんかここが長すぎるんでエンコーディングエラーとして認識されちゃうってことも無きにしも非ずだったりして、ということで改行してみる。
(HTML的な改行ではなく、IDE内での改行)
現在も、●●氏は○○で手打ち製麺職人として
麺食文化普及に取組んでいる一人ですが、
当時、手打ち麺の魅力がはっきりわかる
"ざるうどん"を世に送り出そうと思いつき、
コシがあり、つるつるとしたのどごしの麺の上に
揚げたてのアツアツの海老の天ぷらをのせ、
新メニューを販売することになったのです。
として「保存」。
それを開き直してみる。
↓
エラー無し…。
こんな場所の文字数のアレが、何十行も下の
「カレー煮込みうどんは、だしの効いたカレースープに」
の部分に関わってくるんですか!?
さっぱりわけがわかりませんが、NBの機嫌が治ったので良しとしましょう。