[PHP-users 22444]POST文字の化け対策について

Nori n_papa_kun @ yahoo.co.jp
2004年 6月 30日 (水) 16:10:05 JST


こんにちはNoriと申します。

皆さんは下記のような状況をどう回避されていますか。
下記対処案を考えましたがより良い方法が無いか皆様のご意見を伺って
みようと思い投稿しました。
(このような状況が発生するページが現在多数(50ページほど)あります)

現象:単一又は複数のフィールドから「張」のような漢字一文字
   (他は空白又は1バイト文字)をポストした場合ポスト先で
   文字化けしてしまいます。

対処案:
  ダミーのフィールドを追加する
  (<input type="hidden" name="damy" value="美乳" />)

サンプルソース(下記テキストボックスはサンプル、実際はhiddenフィールドで
す)
<?php
$str = "張";

print <<<HEAD
<html>
<head>
<meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=EUC-JP">
</head>
<body>
HEAD;

if ($_POST["arg"]) {
	$arg = $_POST["arg"];

	print "元の文字: " . $str . " [" . bin2hex($str) . "]<br />\n
";
	print "\$_POST : " . $arg . " [" . bin2hex($arg) . "]<br />\n
";
} else {
	print <<<BODY
	<form method="post" action="tahara.php">
	<input type="text" name="arg" value="$str">
	<input type="submit">
	</form>
BODY;
}
?>
</body>
</html>

php.ini関連設定:
	output_buffering              = Off
	default_charset               = EUC-JP    
	mbstring.language             = Japanese
	mbstring.encoding_translation = On
	mbstring.http_input           = auto
	mbstring.http_output          = EUC-JP    
	mbstring.internal_encoding    = EUC-JP    
	mbstring.substitute_character = none


検証環境(全て同現象発生):
	1.redhat 7.3
	 apache 1.3.28
	 php 4.3.0

	2.windows2000
	 apache 1.3.28
	 php 4.3.0

	3.redhat 9
	 apache 1.3.31
	 php 4.3.7
__________________________________________________
Do You Yahoo!?
http://bb.yahoo.co.jp/



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