[netatalk-ja:0132] Re: 3.0.2でPhotoshop CS5で濁音のファイルがセーブできない

HAT hat @ fa2.so-net.ne.jp
2013年 3月 31日 (日) 18:55:53 JST


HATです。

> やっぱりof_allocにはNFDでpathが指定されていますね。
> netatalkの他のところで、NFD -> NFCをしているところの関数がわかれば
> 直せそうですけど...
> 
> どこでやっているかまだよくわかってません。

文字コード変換でよく使うのは、libatalk/unicode/charcnv.cの中の
以下の2つです。

convert_string()
単純に文字コード変換する。

convert_charset()
flagsによって変換するときの条件を色々設定できる。

どちらの関数も、"from"文字コードをいったん内部コード(UTF-16)に変換して、
必要な処理を行ってから、"to"文字コードに変換しています。

今回の場合は、ファイルシステム上の実際の名前に変換するわけですから、
「/」と「:」の入れ替えとか諸々の処理が入るので、convert_charset()を
使うことになると思います。

NFC/NFDの変換は、libatalk/unicode/util_unistr.cの中の
precompose_w()とdecompose_w()です。
上記2つの関数も必要に応じてこれらを呼び出します。

-- 
HAT


netatalk-ja メーリングリストの案内