1

画像の URL を MySQL データベース テーブルに保存しようとしています。

列フィールドは十分な長さです。テーブルとデータベースは UTF-8 CI 一般照合 (IIRC) を使用しています。

URL は次のようになります。

http://example.com/media/images/47142000/jpg/_47142379_005857853-1.jpg

しかし、それらは次のように保存されます:

http://example.com/media/images/47142000/jpg ...

「_」の出現が mySQL の問題を引き起こしているようです。データベースに保存する前に、文字列を urlencode する (または文字列に対して他のデータ変更を実行する) 必要がありますか?

4

1 に答える 1

1

NO_BACKSLASH_ESCAPES SQL モードが有効になっていない限り、文字列内の特定のシーケンスには特別な意味があります。これらの各シーケンスは、エスケープ文字として知られるバックスラッシュ (「\」) で始まります。MySQL は、次のエスケープ シーケンスを認識します。

\0 ASCII NUL (0x00) 文字。\' 一重引用符 ("'") 文字。\" 二重引用符 (""") 文字。\b バックスペース文字。\n 改行 (改行) 文字。\r キャリッジ リターン文字。\t タブ文字。\Z ASCII 26 (Control-Z)。表の後の注を参照してください。\ バックスラッシュ (「\」) 文字。\% キャラクター。表の後の注を参照してください。_ キャラクター。表の後の注を参照してください。

_ 文字をエスケープする必要があります。

詳細については、 http://dev.mysql.com/doc/refman/5.0/en/string-syntax.htmlを参照してください。

于 2010-02-13T04:02:26.437 に答える