So here’s a pretty pickle for you eBook converters out there – apparently HTML encoding does not work properly for filenames. At least, not for content.opf.
Here’s the error I just got while compiling an eBook for a client:
ERROR: /home/steven/Documents/business/ebook_conversion/pinkbook/ThePinkBook2012.epub: image file OEBPS/images/HepB post exp ta_fmt.jpeg is missing
WARNING: /home/steven/Documents/business/ebook_conversion/pinkbook/ThePinkBook2012.epub: item (OEBPS/images/HepB%20post%20exp%20ta_fmt.jpeg) exists in the zip file, but is not declared in the OPF file
This is another case of special characters not being consistently supported in URLs in eBooks, except this time it’s within the eBook. The %20 is routinely used by browsers to put a space in an URL on the web. Yet epubcheck kept throwing this error until I looked really closely at the problem.
HepB post exp ta_fmt.jpeg
One part of epubcheck was actually parsing the %20 literally as the characters “percent two zero” and another part was parsing it as “space”. While this might fly with some eBook software, remember that you want your eBook to be properly parsed on as many eReaders as possible. So replace those spaces and %20s with underscores or get rid of them altogether.