[PHP-users 32133] 特定の漢字での文字化け
Hirao
hirao @ stannet.ne.jp
2007年 5月 15日 (火) 15:36:25 JST
Hiraoです。PHPを書籍で勉強中です。
htmlファイルから文字を入力してphpで入力した文字を表示するという
プログラムを作成しています。
書籍についていたサンプル通りに動くようにはなったのですが、
特定の漢字(例えば「表」「噂」)を入力するとphp側で表示したときに
¥マークがついて表示されます。
try2.htmlの 名前に hirao メッセージに 表 と入力すると
try2.phpは hiraoさんは表\と書き込みました と表示されます。
php.ini の文字コードではないかと思いいろいろWebで調べてみたのですがどう
しても解決できません。
どのようにすれば正しく表示されるのでしょうか?教えていただけませんか?
環境
xampplite-win32-1.6.1.zip をダウンロードして展開しました。
Windows XP + SP2
Apache 2.2.4
PHP 5.2.1
です。
HTMLの内容 try2.html
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">
<head>
<title>クライアント側入力フォーム</title>
</head>
<body>
<form action="try2.php" method="POST">
名前:<input type="text" name="name"/><BR>
メッセージ:<input type="text" name="message"/><BR>
<input type="submit" value="送信する"/>
</form>
</body>
</html>
PHPの内容 try2.php
<?php
$name_php=$_POST['name'];
$message_php=$_POST['message'];
echo $name_php . 'さんは' . $message_php . 'と書き込みました';
?>
php.ini の内容
[mbstring]
; language for internal character representation.
mbstring.language = Japanese
; internal/script encoding.
; Some encoding cannot work as internal encoding.
; (e.g. SJIS, BIG5, ISO-2022-*)
mbstring.internal_encoding = SJIS
; http input encoding.
mbstring.http_input = auto
; http output encoding. mb_output_handler must be
; registered as output buffer to function
mbstring.http_output = pass
; enable automatic encoding translation according to
; mbstring.internal_encoding setting. Input chars are
; converted to internal encoding by setting this to On.
; Note: Do _not_ use automatic encoding translation for
; portable libs/applications.
;mbstring.encoding_translation = Off
; automatic encoding detection order.
; auto means
;mbstring.detect_order = auto
; substitute_character used when character cannot be converted
; one from another
;mbstring.substitute_character = none;
; overload(replace) single byte functions by mbstring functions.
; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(),
; etc. Possible values are 0,1,2,4 or combination of them.
; For example, 7 for overload everything.
; 0: No overload
; 1: Overload mail() function
; 2: Overload str*() functions
; 4: Overload ereg*() functions
;mbstring.func_overload = 0
PHP-users メーリングリストの案内