びびび備忘録

日々過ごしていて困ったことや何とか解決できたことを共有します


EOFの制御文字(0x1A)がcssファイル中にあるとエラーになるみたい

f:id:chidimaca:20180420041548j:plain

 

チヂマカです。

電子書籍の制作などもしています。

 

制作したEpubがどうもepubcheckのチェックに通らないなと思ったら、何かの拍子にエディタの設定を変更してしまっていたようで、cssファイルの編集・保存時に末尾にEOFの制御文字(0x1A)がついていたみたいです。

 

 エディタの設定で保存時にEOF制御文字を付けてしまっていた

 

私は秀丸エディタを使っているのですが、[その他]メニュー>[ファイルタイプ別の設定]>[保存・読込み]の中に「保存するときにEOF制御文字を付ける」というチェックボックスがありまして、何かの拍子にそのチェックを入れてしまっていたようです。

f:id:chidimaca:20180420042214j:plain

こいつです

 

cssファイルにEOF制御文字が付いているとepubcheckで以下のようなエラーが出ます。

CSSパース中にエラーが発生しました: トークン '●' はここでは使用できません..

CSSパース中にエラーが発生しました: 構文が途中で終わっています ('}' がありません). 

 (●の部分に制御文字が入っているんですが、視認できませんね)

 

 

cssファイルの編集・保存時にはEOF制御文字を付けないこと

 

W3CのCSS検証サービスでもEOF制御文字が付いているcssファイルをアップロードするとエラーになります。EOF制御文字がついていると正常にパースできないようです。

 

というわけで、もし秀丸エディタでcssファイルを編集することがありましたら、「保存するときにEOF制御文字を付ける」のチェックははずしてくださいね。

 

 

ちなみに、エラーの原因を探っているときに制御文字の文字コードを見ようと思ったらいつの間にか表示メニューの中の「文字コードを表示」の項目もオフにしてしまっていました。

誤クリックしすぎなんですよね。。。