UTF-8-MACとは何か?〜Jekyllのカテゴリ(タグ)ページで濁点を含むページが表示されない〜
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だと、分解されて「か」と「゜」で表現される。
解決策
- rsyncのバージョンを3.0に上げる
- オプション
--iconv=UTF-8-MAC,UTF-8
をつけて実行
※ オプションiconv
は、バージョン3.0からしか利用出来ない
これによって、UTF-8-MAC
をUTF-8
に変換して、サーバに転送する。
rsyncアップロード
brew tap homebrew/dupes
brew install libiconv
brew install rsync
Rakefileの変更
desc "deploy_to_sakura"
task :deploy_to_sakura do
sh "jekyll build"
- sh 'rsync -e -avz --delete _site/ [email protected]:/home/meganii/jekyll
+ sh 'rsync --iconv=UTF-8-MAC,UTF-8 -e -avz --delete _site/ [email protected]/home/meganii/jekyll
end
手書きメモ
参考
カテゴリー名に濁点を含んだ日本語が使えない問題を解決する(Rsyncのiconvオプションを使う) - gam0022.net
brew tap homebrew/dupes #リポジトリを追加 brew install libiconv #iconvオプションを使うために必須のよう brew install rsync ...
Author And Source
この問題について(UTF-8-MACとは何か?〜Jekyllのカテゴリ(タグ)ページで濁点を含むページが表示されない〜), 我々は、より多くの情報をここで見つけました https://qiita.com/meganii/items/62215cbfece5d7513af6著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .