kindleで三国志の本を出すと文字化けとのバトルになる 私の対処法

先日冬コミで頒布した三国志本のkindle版を発行しました。お陰様で一時期世界史部門で3位まで行きました。なぜか韓国朝鮮史部門のランキングにでているんですけど私は中国史で登録したんですけどね……一体なぜ。

正史三国志の注の注と正史三国志を紹介する本を紹介する本

正史三国志の注の注と正史三国志を紹介する本を紹介する本

さて、今回苦労したのが文字化けとの戦いです。三国志に関わると難しい漢字が出てきてそれが文字化けするとか表示できないとかそういう目に遭うのです。でも荀イクとか表示させるのは私は嫌なのです。どういう手順でそれを回避したのかを今回はご紹介します。なお我流のためもっと良い方法がある可能性があります。

kindle用ファイルの作り方

文字だけの本を作成する場合、これは結構簡単で、表紙の画像と本文のファイルを用意すればあとはamazonのサイトにファイルをアップロードすると勝手に変換をしてくれます。使用できるファイルは表紙側はjpegtiffで本文側はdoc(x)、html、pdf、MOBI、ePub、、RTF、プレーン テキスト (TXT) 、KPFとなります。
詳しくは→https://kdp.amazon.co.jp/help?ref_=kdp_EB_UB_fo&topicId=A2GF0UFHIYG9VQ

どうやって作成するか?

電子書籍の大きな利点とて文中にリンクを張ることができます。目次から各見出しへジャンプ可能とすることができ、私の本でも可能にしています。これを簡単に実現するには折角docファイルを使用できるのですからwordまたはOpenOfiiceWriter(無料)を使用すると良いです。docファイルで出力する。目次から見出しへジャンプするためにどうしたらよいかは……まあそういうサイトが沢山ありますので見てください。

変換結果の確認

kdpのサイトにコンテンツをアップロードするか自分のSend-to-Kindle Eメールアドレス*1へメールを送ることにより変換結果を確認できます。私は今回の原稿はどうせ文字化けするだろうと思っていたので実際に販売の手続きを取る前に確認しようと思ってkindleアドレスへ送ったのですが、やっぱり文字化けしていました。

文字化けとは

文字化けの原因というのはまあ色々あるのですが……。
https://ja.wikipedia.org/wiki/%E6%96%87%E5%AD%97%E5%8C%96%E3%81%91
今回は以下のいずれかだろうと思いました。

  1. その文字がフォントファイルの中に用意されていない
  2. 環境ごとに文字の割り当てが異なっている(いわゆる機種依存文字

1は単純にその文字を表示できないということです。2は環境ごとにある文字を表す符号が別のものを指し示してしまっている(あるいは何も指し示していない)ことにより文字を正しく表示できない現象です。
詳しくはこちらを。
http://www.d-toybox.com/studio/lib/romanNumerals.html
1ならば私はどうしようもないので荀イクとか書くしかないですが2ならば環境に依存せず文字を表示させる方法に心当たりがあったのでした。

実体参照

HTML上などである特定の文字記号をさまざまな環境で表示させる、またはマークアップに使われるために普通に記述できない文字を表示させるために実体参照という仕組みがあります。
例えば「<」などはHTMLのタグに使用されるためHTML文書内に普通に書いてもタグ用の記号として認識され表示されることはありません。これを表示させたい場合は「<」と記述することで「<」を表示させることができます。
いわゆる機種依存文字など(というか全部の文字記号)にもこれが割り振られていて、紣ならば「彧」と記述するとHTML上ではきちんと紣の文字を表示させることができるのです。
これを使うことで対応する文字列が判ります。
http://yasu.asuka.net/orkut/conv.html

実際にどうしたか

1.
まずdocファイルをアップロードして中身を確認し文字化けしている文字を確認します。
ファイルのアップロードはここから行えます。アップロードが終わると変換が始まり、それが終わるとプレビュー可能となります。
ここで人の目で見てしらみつぶし。これは効率も悪く抜けも発生しそうであまりよくないですね。もっと良い方法があるといいのですが。
2.原稿をHTMLに変換します
WordやOpenOfiiceWriterなら一発で出来ます。死ぬほど汚いHTMLが出力されますがそこは我慢が賢いかと。私は我慢できなくていじりましたがあまり意味はありません。
3.
HTML文書の中の文字化けした文字を「置換」で実体参照に置き換えます。この時いわゆる見たままを表示してくれるHTMLエディタを使うとたぶんうまく行きませんので、テキストエディタで開いて作業すると良いと思います。
4.
注意:3の作業の後HTMLファイルを再度WordやOpenOfiiceWriterで編集して保存すると実体参照にしたはずの文字が元に戻ってしまいますので3の作業を再度行わなくてはなりません。このせいでだいぶ手間取りました。
5.
HTMLファイルをamazonにアップロードして中身を確認する。

これでOKです。荀紣だろうが程碰だろうがどんとこいです。

この方法の欠点

HTMLには改ページを行う仕組みがないため改ページを作ることができません。docファイルなら改ページを作ることができるのですが……。

以上となります。これでみなさんもブリバリ三国志本をkindleで出してください。もっと良い方法がありましたら教えていただけるとありがたいです。