2012-03-27 4 views
1

写真の添付リンクに見られるように。私はこれらの小さな黒いダイヤモンドの形の疑問符を取得している、私はそれがURLのエンコーディングとは何かを持っていると思います。 http://prntscr.com/7gkxbリトルブラック "?"スペース?

(入力フィールドが自分自身についてバイオを入力するために誰かのためにTEXTAREAである)

javascriptの側では、私は、URLのためにそれをエンコードするために、エスケープを使用しています。私は処理のためにデータを送信するためにAjaxのGETメソッドを使用しています

$bio = strip_tags($bio); 
$bio = urldecode($bio); 

var bio = document.getElementById('bioarea'); 
var bio_value = escape(bio.value); 

その後、PHP側では、私は戻ってそれを変更するurldecodeを使用しています。どうすれば "?"はそこにないのですか?

+0

デモやテストページを表示できますか? – Starx

答えて

2

URLエンコーディングではなく、文字エンコーディングです。おそらく、UTF-8として定義されたページにMS Word(Windows 1251)文字があります。

ページヘッダーで使用している文字エンコードのタイプを確認し、すべて一致させる。

+0

いくつかの[ヘッダーエンコーディングの例](http://www.cybervaldez.com/how-to-remove-those-nasty-question-mark-with-a-diamond-symbols-from-appearing-in-your -website/2009 /)(HTMLとPHP)、どこを見なければならないかを知る必要がある場合。 – RedRiderX

0

これは通常、データに迷惑メールがある場合(通常はコピーアンドペースト)に発生します。

ご使用のページがutf8とデータベースに設定されていることを確認していることがあります。ここ

詳細情報http://blog.salientdigital.com/2009/06/06/special-characters-showing-up-as-a-question-mark-inside-of-a-black-diamond/

+0

ああ、両方のおかげで、私はそこにコピーして貼り付けましたが、私はコピーして貼り付けてもOKです。ありがとう –

+0

プロブレムはあなたのプロジェクトの残りの部分を解決して幸運としてマークすることを忘れないでください。 –

0

あなたはそれらの位置の「実空間」以外SOMの文字を持っているように見えます、そして、あなたのエンコーディングは、クライアント側およびサーバー側で同じではありません。

たぶん

$bio = utf8_encode($bio); 

は、この問題を解決します追加しますか?