2

mysql データベースに次の値があります。「A+」は雑誌の名前です。データベースに座っているのを見ることができますが、php経由で表示することはできません。SQLデータをフェッチすると、出力されます

「あ」

私は utfencode() utfdecode() htmlentities() を試しました...無駄に。問題を診断できません。重要な場合は、ajax (jquery load() 関数) を介してこのデータをフェッチします。

アップデート:

正規表現を使用してデータを解析しているときに + 記号が削除されていることがわかります。それに対する修正も見つからないようです。preg_quote() は役に立ちません。

4

5 に答える 5

5

jquery が URL エンコードされた「+」記号として解釈している可能性があります。これはスペースとして解釈できます。いくつかのコードを投稿すると、誰かがあなたに完全な答えを与えることができると確信しています.

于 2009-03-20T14:28:53.010 に答える
1

データが次の+ように宣言されている場合、文字はスペースとして解釈されますapplication/x-www-form-urlencoded

これはデフォルトのコンテンツ タイプです。このコンテンツ タイプで送信されるフォームは、次のようにエンコードする必要があります。

  1. コントロールの名前と値はエスケープされます。スペース文字は ' +'に置き換えられ、[RFC1738] のセクション 2.2 で説明されているように予約文字がエスケープされ%HHます。改行は、"CR LF" のペア (つまり、' %0D%0A') として表されます。
  2. コントロールの名前/値は、ドキュメントに表示される順序でリストされています。名前と値は ' =' で区切られ、名前と値のペアは ' ' で区切られます&

したがって、適切にエンコードする必要があります。JavaScript では、URI で文字encodeURIComponentを使用する場合は関数を使用します。+

"http://www.example.com/?q=" + encodeURIComponent("A+")
于 2009-03-20T14:56:27.937 に答える
0

まあ、それを機能させる唯一の方法は


echo urlencode("これは A+ テキストです");


それは機能し、テキストの残りの部分を損なうことはないようですが、この背後にある理論的根拠はわかりません. とにかく、助けようとしたすべての人に感謝します。

于 2009-03-20T16:11:30.610 に答える
0

urlencode()を使わずに JavaScript パラメータとして渡しますか?

于 2009-03-20T15:21:46.487 に答える
-1

\ の前にエスケープ文字を追加して、それがどのように機能するかを確認できます。htmlentitiesを使用してフィールド データを変換しない場合

于 2009-03-20T14:46:32.937 に答える