PHPで簡体字をファイルに文字化けしないで書き出す方法を教えて下さい。


「擇繳」と入力するおとブラウザには表示されるのですが書き出されるファイルでは
文字化けを起こしてしまいます。

PHP環境に依存せず実現できると助かります

PHPはUTF-8で保存しています。


<html lang="zh">
<head>
<title>test</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
<form method="POST" action="test.php">
<p>txt <input name="txt" type="text" /><input type="submit" name="button" id="button" value="sub" />
</form>
</body>
</html>


<?php
mb_internal_encoding("UTF-8");
if( $_SERVER['REQUEST_METHOD'] == "POST" ){

$txt = $_POST['txt'];
echo $txt;

$logfilename = "aaa.dat";
$fp = @fopen($logfilename, "w");
fputs($fp, "$txt");
fclose($fp);
}
?>

回答の条件
  • 1人3回まで
  • 登録:2008/12/17 07:25:22
  • 終了:2008/12/17 14:52:22

回答(2件)

id:amagami No.1

amagami回答回数53ベストアンサー獲得回数02008/12/17 09:01:55

ポイント48pt

質問にあるHTMLとスクリプトをそのまま試してみましたが、特に文字化けなどせずにきちんとファイルにも書き出しされていました。

ところでaaa.datを開いているテキストエディタは何をお使いですか? 私はWZ Editorを使っているのですが、他のエディタでも文字コードを自動判定するような設定になっていると、それに失敗した時は見た目に化けてしまうと思います。

ちなみにPHP EditorではUTF-8になっていても化けて見えました。

id:akide

さくらエディタ、XYZZYにてオープンした所文字化けしていました。

ブラウザで開き、エンコードを変えたところ文字化けせずに保存されていることを確認しました。

ご回答ありがとうございました。

2008/12/17 14:50:53
id:pahoo No.2

pahoo回答回数5960ベストアンサー獲得回数6332008/12/17 10:43:13

ポイント48pt

ファイル "aaa.dat" には正しく書き出されているはずです。


何を使って "aaa.dat" を閲覧していますか? UTF-8のフルセットを表示できるツールでないと文字化けしてしまいます。

ブラウザを使って "aaa.dat" をオープンして、文字エンコードを UTF-8 に設定してやれば、文字化けせずに表示されると思います。

id:akide

さくらエディタ、XYZZYにてオープンした所文字化けしていました。

ブラウザで開き、エンコードを変えたところ文字化けせずに保存されていることを確認しました。

エディタによってはUTF-8対応でもフルセットが表示出来ないものがある事がわかりました

ご回答ありがとうございました。

2008/12/17 14:51:39

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません