[PHP-dev 563] ISO-2022-KR 変換が壊れている?

Moriyoshi Koizumi php-dev@php.gr.jp
Wed, 13 Nov 2002 05:58:14 +0900


小泉です。

立て続けにすみません。

韓国語はぜんぜん分からないのですが、mb_send_mail() のテストケースを書いて
いる際に妙な挙動を発見しました。

http://jpdic.naver.com/jpdic?mode=srch_ke&query=%C5%D7%BD%BA%C6%AE

まずは Unicode に対応したブラウザで上記をご覧下さい。
日本語の「テスト」に対応する韓国語の文字が分かると思います。

(クエリーのエンコーディングは EUC-KR ですが、あまり気にせず見れると
思います。)

次に、以下のコードの結果を韓国語の表示できるブラウザで試してください。
(最近の IE, Mozilla は大丈夫と思います)

(「砺什闘」の部分は EUC-KR の文字を EUC-JP の文字マップで強引に
表現したものです。つまり、以下のコードは EUC-JP で書かれている
と想定してください。)

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-2022-KR">
</head>
<body> 
[<?php print iconv("EUC-KR", "iso-2022-kr", "砺什闘"); ?>] <br>
[<?php print mb_convert_encoding("砺什闘", "iso-2022-kr", "EUC-KR"); ?>] 
<br>
</body>
</html>

表示される文字が両者で異なっている上に、iconv() の方は上のURLと同じ結果を
出力しているので、mb_convert_encoding() の方に不具合があるのではないかと、
思いますが、どうでしょうか?