[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 メーリングリストの案内