[PHP-users 19719]変数の受け渡しで一部文字化けするものがある。

ihara senjyu @ f2.dion.ne.jp
2004年 1月 6日 (火) 14:34:58 JST


お世話になっております。伊原と申します。

あるサイトを自作し、テスト運営していました。
今まではほとんど問題なく、運営できていたのですが、あるプログラムで
何気なしに入力した文字が文字化けすることに気づきました。
そこで、下記のサンプルプログラムを作成し、現象を再現させたところ、
やはり文字化けが発生してしまいます。

そのプログラムは、日本語入力したものを別のプログラムへ渡して(POST,GET)いるのだけの
単純なものですが、一部の文字だけ文字化けしてしまうようです。

例)test1.php -> test2.php
文字化けする・・・天、天竜、天丼、道、
文字化けしない・・・天ぷら、天使、天国、道草

他にも次のようなパターンがあります。

test2.phpでは文字化けしないが、test1.phpに戻ると文字化けするもの
test1.php -> test2.php -> test1.php
 寿   ->  寿       -> 表示されず
 天ぷら -> 天ぷら  -> 天ぷ


環境は、RedHat8.0+PHP4.3.0+Apache1.3.27です。
日本語環境は EUC-JP です。
マルチバイト関係は、
mbstring.encoding_translation = On
mbstring.language = Japanese
mbstring.internal_encoding = EUC-JP
mbstring.http_input = auto
mbstring.http_output = SJIS
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = none
mbstring.func_overload = 0
と設定されています。

どなたか解決策をご伝授願います。よろしくお願いします。

以下、サンプルプログラム
----------------------------------------------------------

test1.php
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=EUC-JP">
<META http-equiv="Content-Style-Type" content="text/css">
<TITLE></TITLE>
</HEAD>
<BODY>
<CENTER>
<?php
	print("<P>$jname</P>");
?>
<P><BR>検索したい名称を入力し、ボタンを押して下さい。</P>
<FORM ACTION="test2.php" method="POST">
<TABLE cellspacing=0 cellpadding=0 border=0 bgcolor="#ffffff" width="100%">
	<TR><TD align="center">
		<INPUT TYPE="text" NAME="iname" size=80 maxlength=32>
	</TD></TR>
	<TR><TD align="center">
		<INPUT TYPE="submit" value = "検索">
		<INPUT TYPE="reset" value = "取消">
	</TD></TR>
</TABLE>
</FORM>

</CENTER>
</BODY>
</HTML>



test2.php
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=EUC-JP">
<META http-equiv="Content-Style-Type" content="text/css">
<TITLE></TITLE>
</HEAD>
<BODY>
<CENTER>
	<P>検索条件 → 
<?php
	if( ! $iname ) {
		print("? </P>");
		print("<P>検索条件を入力して下さい。</P>");
	}
	else {
		print("$iname</P>");
	}
	printf("<A href=\"test1.php?jname=%s\">戻る</A>",$iname);
?>
</CENTER>
</BODY>
</HTML>




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