0

Javascript Ajaxリクエストを使用して特殊文字をパラメータとしてURLに配置するように変換し、それをPHPに読み取るというこの問題があります。文字は「Ñ」です。

私のjavascriptでは、パラメーターをエスケープ( 'PiÑa')として置き、「Pi%D1a」に変換されます

そして、PHPでそれを読むと、疑問符の付いたひし形が表示されます。これが私がそれを読んだ方法です。

   escape(message) // Message being the "Pi%D1a"

私が言ったように、データベース、postgreSQL を保存すると、エラーが発生するという奇妙な文字が出てきます。これを修正するにはどうすればよいですか?

4

2 に答える 2

1

D1ISO-8859-1 ("Latin-1") でエンコードされた形式の "Ñ" 文字です。
「疑問符付きのひし形」(�) は Unicode 置換文字です。表示される場合は常に、ブラウザー/エディター/テキストを解釈するものは何でも、テキストを Unicode として解釈しようとしており、想定される Unicode エンコーディングでは無効な文字に遭遇していることを示しています。

つまり、文字は実際には Latin-1 でエンコードされていますが、(おそらく) UTF-8 でエンコードされていることをブラウザに伝えています。エンコーディングの不一致があります。ヘッダーを介してブラウザに正しいエンコーディングを伝えるかContent-Type: text/html; charset=XXX、文字を使用する前に文字を Latin-1 から UTF-8 に変換してください。

于 2013-03-22T06:46:56.367 に答える
0

使ってみましたurldecode($message)か?

%D1ÑのURLエンコードされた表現です。

于 2013-03-22T06:38:34.817 に答える