ぼんやりと考えている人

ひろしまなおき (廣島直己)
名前: ひろしまなおき (廣島直己)
住処: シリコンバレー
職業: しがないプログラマ
家族: 愛妻一人、息子一人、娘一人
道具: ハーレー二台、ギター三本
電紙: n at h7a.org

Twitter

« January 2009
S M T W T F S
        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

以前にぼんやりと考えたこと

最近のコメント

  • ひろしま (ケータイがあろう…): 子どもにネットを自由に使わせるのは、ぼくも大反対で…
  • noriyukiokada (ケータイがあろう…): ネットの自由すぎるところがちょっと怖いんですよね。…
  • Shin (ケータイがあろう…): まだ、書かれてから十二時間しか経っていないこの文か…
  • ひろしま (そろそろ JTPA シ…): ぼくの熱狂的ファン度ではぼくも負けていないつもりな…
  • 春子 (そろそろ JTPA シ…): ITとかちんぷんかんぷんなのに、危うく廣島さん会いた…
  • ひろしま (虫歯にならない方…): ミュータンス菌の感染経路に関しては、母からという説…
  • kenn (虫歯にならない方…): 虫歯のもとはミュータンス菌ですが、それは先天的なも…
  • ひろしま (前略、ユキ子様へ…): それもまた凄いですね。。。 最初からそれだとかなり滅…
  • chika (前略、ユキ子様へ…): 私昔アメリカから日本に引っ越したとき、引越し荷物を…
  • よーこ (ミイラになってい…): 子孫にも日本語を教えてください。

  • Powered by Pivot - 1.40.5: 'Dreadwind'
  • SPAM Poison
  • XMLフィード(RSS 1.0)
  • Atomフィード

08 October '2003 - 20:44 | 雑記 文字化け

SquirrelMail を使っていて、生データは問題ないのに、なぜか文字化けすることがあったので調べてみたら、PHP の mb_detect_encoding() が間違った検出をしてしまう場合があることが原因だった。うーむ、こんなのが間違うことがあるとは。

もしかしたら、それが依存しているライブラリのバグだったりするのかも知れないけれど、そこまで追う気力も体力も時間もない。



なので、素直にメーラが言ってる文字セットを使えばいいじゃん、ということにした。



 

$ diff -u mime.php.orig mime.php

--- mime.php.orig Fri Jul 18 05:46:16 2003

+++ mime.php Fri Sep 5 00:04:49 2003

@@ -347,7 +347,25 @@



if (isset($languages[$squirrelmail_language]['XTRA_CODE']) &&

function_exists($languages[$squirrelmail_language]['XTRA_CODE'])) {

- if (mb_detect_encoding($body) != 'ASCII') {

+

+ /* why don't we just depend on the charset specified by mailers

+ * rather than mb_detect_encoding() which does not always detect

+ * encoding as we expect?

+ */

+ $charset = strtolower($body_message->header->parameters['charset']);

+ if ($charset != 'us-ascii' && $charset != 'iso-8859-1') {

+ if ($charset == 'iso-2022-jp') {

+ $encoding = 'JIS';

+ } else if ($charset == 'euc-jp') {

+ $encoding = 'EUC';

+ } else if ($charset == 'shift_jis') {

+ $encoding = 'SJIS';

+ } else if ($charset == 'utf-8') {

+ $encoding = 'UTF-8';

+ } else {

+ $encoding = 'AUTO';

+ }

+ $body = mb_convert_encoding($body, 'EUC-JP', $encoding);

$body = $languages[$squirrelmail_language]['XTRA_CODE']('decode', $body);

}

}



ほんとは、i18n.php の japanese_charset_xtra() に charset を渡す方がいいんだけれど、実行効率よりも保守効率を選んだ。つまり、パッチが二箇所になるのは面倒なんで、mime.php だけハックすることにした。



オープンソースマンセー。



Trackback link:

トラックバック用URLを生成するには、JavaScriptを有効にしてください。


助かります。考えずに検索して助けられました。
早速、お知恵を拝借いたします。
ありがとう。

  
情報を記憶する

Emoticons /

酢ハムがいったいどんなハムなのかはともかく…
 

 

通知:
非公開:

注意: 使用できるタグは <b> と <i> のみです。URLやメールアドレスはそのまま記述すればリンクになります。