
こんにちは教えてください。
AJAXからPHPを呼んで、PHPから全角文字を受け取ると文字化けしてしまいます。いずれも文字コードはSJISです。例えば下のような感じです。(AsyncRequest()はXMLHttpRequestのオブジェクトを作って返す関数です)
文字化けの原因は何でしょうか?
/*************************************
JavaScript側
*************************************/
var Async = AsyncRequest();
Async.open( "GET" , "test.php );
Async.send( null );
Async.onreadystatechange = function(){
if( Async.readyState == 4 && Async.status == 200 ){
alert( Async.responseText );
}
}
/*************************************
test.php側
*************************************/
<?PJP
Print( "こんにちは" ) ;
?>
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
私は既存のシステムがEUCでつくられておりUTF-8にするのがめんどくさくてここにきました。
かなり時間経ってますが、
いまだにここに辿り着く私のようなものもいるので解決方法を記します。
今回の質問の場合ですとphp側で
<?php
Print(mb_convert_encoding("こんにちは",'UTF-8','SJIS')) ;
?>
という具合にSJISをUTF-8に変換して戻せばキチンと表示されました。
また、逆に、phpに対して全角文字を渡す場合には、
参考URLにあるように、ecl.jsという便利なjsファイルがあるので
EscapeSJISなどをつかうと"(株)"などの特殊な文字でもphpへうまく渡せました。
ajax、php間の全角文字のやり取りでは、そのほかに
javascript:encodeURI
php:urldecode
などがキーワードになるかと思います。
参考URL:http://felix-labo.jp/pukiwiki/?JavaScript%2F%E5% …

No.3
- 回答日時:
私は、以下のサイトを参考にして、AJAXとperlの通信プログラムをつくりました。
結論は、JavaScriptがutf8しか解釈しないので、それに合わせる以外にないようです。
JavaScriptを記述しているhtmlもurf8で保存し直す必要があります。
http://allabout.co.jp/career/javascript/closeup/ …
参考URL:http://allabout.co.jp/career/javascript/closeup/ …
No.2
- 回答日時:
過去私も#1さん同様UTF-8を採用しました。
Linux系のディストリビューションのOSで
PHPを動かしていたので何もかも文字コードはUTF-8
でってな感じでやってました。
ほんとに考えることが1つ減ります。
そのときにだったかな?使ってたコードが見つかりましたので
出力部分を示します。
$message = "日の丸弁当梅干抜きで";
$data = rawurlencode($message);
//出力charsetをutf-8に
mb_http_output('UTF-8');
//出力
echo($data);
No.1
- 回答日時:
私がprototype でAJAXを使ったときは、文字コードはすべてUTF-8にしましたね。
XML では、EUCもSJISも使わないほうが経験的に無難だったからなんですけど。
私なら、他のコンテンツも含めてUTF-8にします。
考えることが減りますから。
test.php側で返す文字をUTF-8に変換すれば良いだけかもしれません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エラー発生!!
-
jquery内でPHP変数の比較
-
シェルスクリプトからphpファイ...
-
入力フォームの空白や改行を制...
-
FTPコマンドでディレクトリごと...
-
Subversionのリポジトリの削除
-
PHPのif文でその処理を途中で抜...
-
mysql複数レコードをまとめて削...
-
【file_exists】ファイルが存在...
-
$_SESSION 有効期限をブラウザ...
-
phpのクラスにて別ファイルの変...
-
phpのftp_get()でエラーが出ます。
-
「クラス関数」「メンバ関数」...
-
「クラウドにアップロード」」...
-
ftpでアップロードが出来ない
-
PHP4、PHP5 1ファイル複数クラ...
-
違法アップロードについて
-
.phpと.incファイルの違いはな...
-
PHP table内、<a href使って su...
-
PHPでネットワークドライブのop...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別ファイルの変数を呼び出した...
-
include先でのinclude元の変数...
-
シェルスクリプトからphpファイ...
-
PHP PEARパッケージのincludeが...
-
入力フォームの空白や改行を制...
-
#!/usr/local/bin/phpはどこに...
-
#!/usr/local/bin/php
-
PHPから別なPHPへ移動(?)する方法
-
crontabでPHPスクリプトが実行...
-
1行目の#! "C:\\xampp\\php\\p...
-
exec()にで別PHPをバックグラウ...
-
他人にphpファイルをダウンロー...
-
.phpのファイルを開けない!
-
別PHPファイルに変数を渡す
-
URLをたたく賢い方法
-
Ruby URLの分解方法
-
取得されるメモリについて
-
PHPの拡張子を見せない方法
-
呼び出し元のファイル名を取得...
-
拡張子なしのファイルを稼働さ...
おすすめ情報