[PHP-dev 32] jstringで文字化け

Kanaya Hirosi php-dev@php.gr.jp
Thu, 05 Jul 2001 17:08:38 +0900


はじめまして。金谷と申します。

早速ですがちょっと困ってます。
jstringのmb_convert_encoding関数を使って、
EUCからUTF-8へ変換すると?になってしまう文字が出てしまいます。
具体的には、−と〜が?に変換されていることを確認しました。

逆の変換(UTF-8⇒EUC)はうまくいっています。

テストに使ったコードは以下のようなものです。
-----------------------------------
$filename_in = 'euc_test.txt';
$filename_out = 'utf8_test.txt';

$fp = fopen($filename_in, "r");
$test_in = fgets($fp, 4096);
fclose($fp);

$test_out = mb_convert_encoding($test_in, 'UTF-8', 'EUC-JP');

$fp = fopen($filename_out, "w");
fputs($fp, $test_out);
ftruncate($fp, ftell($fp));
fclose($fp);
------------------------------------
euc_test.txtの中身:
!”#$%&’()=〜|‘{+*}<>?_−^¥@[;:],./
を入れて実行すると

utf8_testの中身:
!”#$%&’()=?|‘{+*}<>?_?^¥@[;:],./
となっています。

この文字化けを回避したいのですが
何かアドバイスや情報がありましたらご教授願います。

-- 
金谷 寛
mailto:kanaya@coo-co-ltd.co.jp