ぼんやりと考えている人

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

Twitter

« May 2019
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  

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

最近のコメント

  • ひろしま (ひらがなせいかつ …): じゅくじくんは なくした ほうが いい ですね。ぼくは…
  • たんぽぽ (ひらがなせいかつ …): きゅうに ぜんぶの ことばを ひらがなだけに する…
  • とね まさひこ… (ひらがなせいかつ …): ぼくは ものかき だが, かんじが きらいなので,…
  • とりえ (ひらがなせいかつ …): このさいとは みているだけで なんとなく ほんわか…
  • ひろしま (思い通りの日本語…): こうどな ほんを よめなければ、こうどな たんごを 学…
  • nt4 (思い通りの日本語…): ひらがなせいかつに初めて接し、興味を覚えました。そ…
  • ひろしま (ひらがなせいかつ …): やはり、がいこくに くらしていたり、がいこくとの か…
  • ぷりうりうぷ… (ひらがなせいかつ …): こんにちは。すうぇーでんに すんでいます。いとうさ…
  • Joi Ito (ひらがなせいかつ …): もと べいにち たいしの Edwin O. Reischauer さん…
  • yonay (理屈じゃないとい…): なんか、著者の主張を誤解しているような気がするよ。…

  • 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やメールアドレスはそのまま記述すればリンクになります。