このブログで、カテゴリーに濁点を含んだ日本語を使うと、カテゴリーの一覧などからカテゴリーのページにリンクしたとき、 404エラーになってしまう問題が起きました。

原因は、このブログの開発環境にありました。

このブログは静的コンテンツなのですが、次のような手順でブログを運営しています。 (Rakefileで自動化されていますが、内部ではこうなっています)

  • ローカル(Mac OS X)でブログを生成する。
  • サーバ(Ubuntu)にRsyncで生成したブログをアップロードする。

Mac OS X では、ファイル名のエンコードにUTF-8-MACを使っているので、 そのままアップロードすると、サーバ上のファイル名もUTF-8-MACになります。 しかし、ファイル自体のエンコードはUTF-8でURLをパーセントエンコーディングしていないので、 リンク先が見つからなくなってしまうようです。

UTF-8-MAC問題について詳しく知りたい人は、こちらなどが勉強になるとおもいます。

解決方法は簡単で、Rsyncでアップロードするときに、--iconvオプションを使い、 ファイル名をUTF-8-MACからUTF-8に変換すれば治ります。

Read more