LoginSignup
4
3

More than 5 years have passed since last update.

UTF-8-MACとは何か?〜Jekyllのカテゴリ(タグ)ページで濁点を含むページが表示されない〜

Last updated at Posted at 2014-11-29

Macでファイル作成し、その後、rsyncでさくらVPS(CentOS)に転送しているのだが、濁点を含むファイルだけが表示されない。

例えば、「リファクタリング」など。
http://meganii.com/blog/tag/リファクタリング/

原因

Mac OSXが作成した濁点、半濁点を含むファイル名を、CentOS側では異なる文字と認識しているのが原因みたい。

一般的に、UTF-8と表現される場合、NFC(Normalization Form C)でエンコードされたものを指す。

一方、Mac OSXでは、NFD(Normalization Form D)で符号化したUTF-8が用いられ、iconvではこれをUTF-8-MACと呼んでいる。Mac OSXのファイルシステム(HFS+)では、濁点、半濁点を分解している。

同じUTF-8でも、NFCとNFDという解釈の違いが存在するため、この現象が起きる。

例えば、「が」を例にすると、

NFCだと、「が」と1文字で表現されるところが、
NFDだと、分解されて「か」と「゜」で表現される。

nfdndc

解決策

  • rsyncのバージョンを3.0に上げる
  • オプション--iconv=UTF-8-MAC,UTF-8をつけて実行

※ オプションiconvは、バージョン3.0からしか利用出来ない

これによって、UTF-8-MACUTF-8に変換して、サーバに転送する。

rsyncアップロード

brew tap homebrew/dupes
brew install libiconv
brew install rsync

Rakefileの変更

Rakefile
 desc "deploy_to_sakura"
 task :deploy_to_sakura do
   sh "jekyll build"
-  sh 'rsync -e -avz --delete _site/ meganii@11.111.111.111:/home/meganii/jekyll
+  sh 'rsync --iconv=UTF-8-MAC,UTF-8 -e -avz --delete _site/ meganii@11.111.111.111/home/meganii/jekyll
 end

手書きメモ

2014年11月29日22時34分48秒000

参考

カテゴリー名に濁点を含んだ日本語が使えない問題を解決する(Rsyncのiconvオプションを使う) - gam0022.net
brew tap homebrew/dupes #リポジトリを追加 brew install libiconv #iconvオプションを使うために必須のよう brew install rsync ...

Mac OS Xの濁点ファイルがやってきた - miauの避難所

MacWiki - UTF-8-MAC

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3