というわけでSubversionを試験的に使ってみることにした。試験的といいつつ、多分これで決まりかな?
ほぼ環境構築はできたのだが、OS Xだけ文字化けを起こしてしまう。しかも濁音、半濁音の文字だけ。
この文字化けのパターンはmod_encodingでも経験したのでUTF-8の仕様の違いが原因であろうとすぐに察しが付いた。この手の問題が起きた場合、たいていプログラム内部ではiconvを使って文字コード変換を行っているので、iconvを使っている部分に手を加えればよい。
OS XのUTF-8(HFS+のファイル名など)をiconvで扱う場合、エンコーディングに「UTF-8-mac」を指定すると正しくエンコードされる。
今回はsubversionのエンコード部分をquick hackして何とか文字化けは解決した。
解決方法はソースコードを医ファイル書き換えるだけでできる。
Sunversion 1.4.5用のパッチ
--- subversion-1.4.5/subversion/libsvn_subr/utf.c_org 2007-12-30 21:14:54.000000000 +0900 +++ subversion-1.4.5/subversion/libsvn_subr/utf.c 2007-12-30 21:19:52.000000000 +0900 @@ -374,7 +374,7 @@ get_ntou_xlate_handle_node(xlate_handle_node_t **ret, apr_pool_t *pool) { return get_xlate_handle_node(ret, SVN_APR_UTF8_CHARSET, - SVN_APR_LOCALE_CHARSET, + "UTF-8-mac", SVN_UTF_NTOU_XLATE_HANDLE, pool); } @@ -387,7 +387,7 @@ static svn_error_t * get_uton_xlate_handle_node(xlate_handle_node_t **ret, apr_pool_t *pool) { - return get_xlate_handle_node(ret, SVN_APR_LOCALE_CHARSET, + return get_xlate_handle_node(ret, "UTF-8-mac", SVN_APR_UTF8_CHARSET, SVN_UTF_UTON_XLATE_HANDLE, pool); }
0 件のコメント:
コメントを投稿