[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]

Re: UTF-8 のプロセス呼び出しで文字化け



森下です。

なぜかメーリングリストに届いていないようなので再送します。複数通届いた
らすみません。

From: Hideyuki SHIRAI (白井秀行) <shirai@xxxxxxxxxxx>
Subject: Re: UTF-8 のプロセス呼び出しで文字化け
Date: Fri, 27 Jan 2006 20:43:35 +0900 (JST)
Message-ID: <20060127.204335.218417592.shirai.hideyuki@xxxxxxxxxxxxxxxxxxx>

> さすがに『shirai => 白井』は無理でしょう。うちの会社はカタカナだ
> から suikyo 使って『shirai => シライ』『sirai => シライ』が可能

なるほど。suikyo ってのがあったんですね。φ(.. ;)
# 先ほどは migemo ノリなのかしらん、と思ったんですが、ローマ字に当ては
# まる漢字等を全部 ldapsearch に渡すなんてのは、無茶ですわな。

> だったけど、森下さんのところは読み仮名で OK ってないのかな?

いくつかサーバーがあるんですが、サーバーによってはフィールドにローマ字
で morishita と入っているので、実は人名の検索は漢字でなくても困らない
場合が多いです。名前が難しくて読めん、という場合には漢字で検索したいで
すけど。
ただ部署名は、漢字交じりの略号が入っているだけなので、この部分は日本語
検索ができないとどうにもなりません。

> http://www.ietf.org/rfc/rfc2254.txt
> http://www.cysol.co.jp/ldap/2254/rfc2254JP.html
> の 5章の最後で正解だったようですな。へへへ。

を見て、

(defun mew-ldap-encode-utf8 (string)
  (mapconcat (lambda (x)
               (if (and (<= ?! x)
                        (>= ?~ x)
                        (null (= ?\\ x))
                        (null (= ?* x)))
                   (list x)
                 (format "\\%02x" x)))
             (encode-coding-string string 'utf-8)
             ""))

というフィルタを mew-ldap-make-filter から呼ぶようにして試してみたんで
すが、
OK: 「森下」 -> (cn=\e6\a3\ae\e4\b8\8b*)
NG: 「森下_」-> (cn=\e6\a3\ae\e4\b8\8b_*)
という結果になってしまいます(サーバーでは、cn に「森下_民平」と入って
います)。かといって、先のメールで書いたように、ASCII 部分も含めてエン
コードしてしまっても引けないんですよね。
うーん、なんでだろう、、、

そんなわけで、

> > mew-ldap.elの諸権利を譲りますので、よいものに仕上げてほしいなぁ。:-)
> 
> ## 権利がなくても、やりたいときは勝手にやるけど :-p

おおいに期待してます。:-)

-- 
もりした みんぺい