[PHP-users 34866] JISで文字列の置換を行いたい。

choice info @ choice-site.com
2009年 12月 9日 (水) 14:24:50 JST


中出と申します。

理由があってJISで文字列の置換を行いたいと
思っているのですが、うまくいきません。

●スクリプト
<?php // -*- coding: utf-8 -*-
$str='%%name%%さん、こんにちは。';
$pat='%%name%%';
$rep='萩山';

$str_jis=mb_convert_encoding($str,'iso-2022-jp','UTF-8');
$rep_jis=mb_convert_encoding($rep,'iso-2022-jp','UTF-8');
$str_jis=str_replace($pat,$rep_jis,$str_jis);

$fp = fopen('data.txt', 'w');
fwrite($fp, $str_jis);
fclose($fp);
?>

スクリプトはUTF8で実装しています。
処理としては、JISの文字列から%%name%%を探し、置換を行い
ファイルに保存するとなっています。

ファイルには
「
萩山さん、こんにちは。
」

と保存されることを期待するのですが、実際には

「
萩山[$B$5$s!"$3$s$K$A$O!#
」

のようになりうまくいきません。


なお、UTF8で置換を行い、その後、JISに変換して保存するという方法は
分かっているのですが、「JISで文字列の置換」が解消した問題なので
この方法はパスしています。

よい解消方法があれば教えてください。
よろしくお願いします。

----



PHP-users メーリングリストの案内