Tomas Kuliavas wrote:
Hi,
I try to send messages written in Japanese (Kana/Kanji) with php.

Everything works fine - only when the subject (or the name of the
sender) becomes longer, there seems to be something wrong with the
encoding: Neither my nor the mail reader of other Japanese friends is
able to decode the mime string. At the place of the Japanese
Characters, the mime string itself is displayed.

As this doesn't happen for other Japanese emails with even long
subjects, I suppose I did something wrong...

When using the corresponding php mb_* functions to decode the string
back, sometimes the correct original string and sometimes meaningless
characters are shown.

Here how I convert the subject (the name is converted using the same
method and the sources are saved in UTF-8 using emacs):

  $subjectJIS  = mb_convert_encoding($subject, "ISO-2022-JP", "AUTO");
  $subjectMIME = mb_encode_mimeheader($subjectJIS, "ISO-2022-JP", "B");
  ...snip...
  mail($to, $subjectMIME, $bodyJIS, $headers);

Here part of the message as it is displayed by my mail program:

  From:
=?ISO-2022-JP?B?GyRCJCskSjRBO3okKyRKNEE7eiQrJEo0QTt6JCskSjRBO3okKyRKNEE7?==?ISO-2022-JP?B?eiQrJEo0QTt6JCskSjRBO3okKyRKNEE7eiQrJEo0QTt6JCskSjRBO3ob?=(B
 <[EMAIL PROTECTED]>
  ...snip...
  Subject:
=?ISO-2022-JP?B?GyRCJCskSjRBO3okKyRKNEE7eiQrJEo0QTt6JCskSjRBO3okKyRKNEE7?= 
=?ISO-2022-JP?B?eiQrJEo0QTt6JCskSjRBO3okKyRKNEE7eiQrJEo0QTt6JCskSjRBO3ob?= (B
...
If anybody can explain me the problem I would be most gratefull :)
I have seen this problem in a few mail clients My solution in the past has been to merge the 2 encoding strings into a single encoding string to avoid the client getting messed when it sees the second "=?ISO-2022-JP" in the Header line. (this is really a big problem for Apple iMail-I have seen it regardless of the programming language used)

You forgot to mention your PHP version, configure options related to
mbstring and php mbstring configuration.

Could you explain why Japanese are so obsessed with ISO-2022-JP? Why
can't you just send it in Base64 encoded UTF-8?

Some brain dead ISPs/Mobile services here in Japan only support ISO-2022-JP.

David Blomberg


--
PHP Unicode & I18N Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to