0

奇妙な問題があります。Windows で MySQL 5.1 を実行しています (ただし、運用サーバーは Debian Linux であり、同じ問題が発生します)。

テーブルを更新するために mysql_query() を使用しています。説明フィールドには、度記号、プラス/マイナスなどの特殊文字が含まれる場合があります。

mysql_query() に送信される前にクエリを確認しましたが、問題ないようです。mysql クライアントを介して正確なクエリを実行すると、正常に動作します。しかし、クエリを mysql_query() に渡すと、特殊文字の前にアクセント付きの A が付きます。

365 - 383 °F で 3 時間焼きます。

ここで一体何が起こっているのかわからないのですが、何かアイデアはありますか? 私はググって、すべてをUTF-8などに設定しようとしました-見つけたものは何でも。

このテキストはPDFに変換され、エンティティを適切にレンダリングしないAccess 97などの他のテクノロジーでさまざまな出力が行われるため、htmlエンティティへの変換はオプションではありません°。ドキュメント。

提案?

4

1 に答える 1

0

UTF-8 の度記号は、たまたま Latin-1 エンコーディングの文字 ° に対応しています。データベース接続のエンコーディングが正しく設定されていないため、データベースは送信する文字を誤って解釈しています。データベースに接続した後に設定mysql_set_charsetします。'utf8'

詳細については、「 Handling Unicode Front To Back In A Web App 」と、テキストを操作するためのエンコーディングと文字セットについて、すべてのプログラマーが絶対に、積極的に知っておくべきことを参照してください。

于 2012-09-24T14:16:20.987 に答える