サーバーの文字コードはEUC-JPです。
文字化けを回避する方法を教えてください。
あと、なぜ文字化けするのかも、できれば教えてください。
Flashの文字コードがUTF-8(推測)なので、文字を受け取る側のPHPで文字コードを変換すればいいのではないでしょうか。
print($_POST["xxxx"]);
ではなく
print(mb_convert_encoding($_POST["xxxx"],"EUC-JP","UTF-8"));
というように。
getURL()の代わりにLoadVars クラスを使用してもだめですか?
myLoadVars = new LoadVars(); myLoadVars.name = "あいうえお"; myLoadVars.send("disp.php","POST");
<?php print(mb_convert_encoding($_POST["name"],"EUC-JP","UTF-8")); ?>
回答、ありがとうございます。
携帯用のFlashなので LoadVars(); は使えないんですよ。説明不足ですみませんでした。
ちなみに、Flash Lite 1.1 で開発しています。
ケータイの場合Shift_JISしか使えないんじゃなかったでしょうか?
PHPの方のコードをShift_JISで書き
<?php mb_language("ja"); mb_internal_encoding('Shift_JIS'); mb_http_input('Shift_JIS'); mb_http_output('Shift_JIS'); print(mb_convert_encoding($_POST["msg"], "Shift_JIS","UTF-8")); ?>
などとするとどうでしょう?
回答していただきありがとうございます。
教えていただいた方法を試しましたが、うまくいきませんでした。
四苦八苦した結果、解決できました。
以下にコードを載せます。
//----- FLASH -----
msg = "あいうえお";
fscommand2("escape", msg, "msg");
getURL("test.php", "_top", "POST");
//-----------------
//----- PHP -----
$msg = urldecode($_POST["msg"]);
$msg = mb_convert_encoding($msg, SJIS);
echo $msg;
//---------------
なぜ上記のようなコードでうまくいくのか、よくわからないのですが。。。
長い間、お付き合いいただきありがとうございました。
回答、ありがとうございました。
実際に試しましたが、うまくいきませんでした。
msg = "あいうえお";
getURL("test.php", "_top", "POST");
$msg = mb_convert_encoding($_POST["msg"],"EUC-JP","UTF-8");
echo "
$msg
";と、以上のようにし実行すると ?????? と表示されてしまいました。