[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