2008年3月22日の日記の1番目の記事へのコメント

Pidgin

最新のyazさんパッチを当ててWindows版をビルドしてみました.大体よさそうかと思いきや,Windows版のPidginから「~」のみを送ると,送り出す時点で「~」に置換されちゃうという問題が.「あ~」のように,非Latin1文字と混ぜて送ると平気だったりします.何だこりゃ.

調べてみたら,どうも「~」単体だと,oscar.c の purple_plugin_oscar_convert_to_best_encoding の中で,

*msg = g_convert(from, strlen(from), charsetstr, "UTF-8", NULL, &msglen, NULL);

で UTF-8 から ISO-8859-1 に変換できてしまう模様・・・.なんでー?Linuxだと発生しないので,Windows固有の現象なんですかね.もしやと思って全角アルファベットや全角数字を突っ込んでみたら,こちらも半角に変換されて送り届けられました.うわー・・・ナニコレ・・・.

とりあえずこんなことして回避してみましたが,なんだかなぁ.

@@ -551,8 +552,10 @@
         * XXX - We need a way to only attempt to convert if we KNOW "from"
         * can be converted to "charsetstr"
         */
-       *msg = g_convert(from, -1, charsetstr, "UTF-8", NULL, &msglen, NULL);
-       if (*msg != NULL) {
+       *msg = g_convert(from, strlen(from), charsetstr, "UTF-8", NULL, &msglen, NULL);
+       if (*msg != NULL && !(strcmp(charsetstr, "ISO-8859-1") == 0
+                              && strlen(*msg) != strlen(from))) {
                *charset = AIM_CHARSET_CUSTOM;
                *charsubset = 0x0000;
                *msglen_int = msglen;

[コメントを書く]

ohac 2008/03/23(日) 16:52:41
こんにちは。これは波ダッシュ問題ですね。
http://ja.wikipedia.org/wiki/%E6%B3%A2%E3%83%80%E3%83%83%E3%82%B7%E3%83%A5
nosuke 2008/03/23(日) 23:59:37
どうも,こんにちは.
ご助言,ありがとうございます.

> これは波ダッシュ問題ですね。
発見当初,それも考えたんですが,Unicodeの波ダッシュ問題だとすると
> 全角アルファベットや全角数字を突っ込んでみたら,
> こちらも半角に変換されて送り届けられました.
が説明できないんですよね・・・.

今日,yazさんにお手伝い頂いて色々調べてみたところ,どうも GNU
libiconvでいうところの,変換先のコードを「ISO-8859-1//TRANSLIT」と
した場合と同じ現象が発生してしまっているようです.

詳細は後ほど今日のエントリに書く予定です.

お名前:  メールアドレス(省略可):
メールアドレスも表示されます
ここに名前その他を書いてはいけません: ここにメールアドレスその他を書いてはいけません:

2008年3月22日の日記の1番目の記事へのコメント

中の人情報

名前:
nosuke (のすけ)
メール:
sasugaanijaのgmail.com
「の」は「@」みたいな
関連リンク:

カレンダー

2008年3月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          

<<先月分

翌月分>>

最新の10件のエントリ

最近の10件のコメント

過去ログ