[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 メーリングリストの案内