2009-08-29 3 views
2

すべての文字エンコーディングの問題を解決するためのワンストップソリューションはありますか?私はいつもユーザー入力、データベース記憶装置、データ検索の間のどこかに問題があるようです(HTMLフォーム。すべてのデータとWebページをutf-8としてエンコードしたいのですが、 8文字のどこかに。ランプスタック/ユーザー入力と文字エンコーディング

私は本当に文字エンコーディングにはあまりうまくいませんが、私はフランス語の文字で作業を始めて以来、私は永遠に問題を抱えています。他の開発者の一人がデータベースに送る前にすべてをurlencodeし、

私が理解しているように、htmlフォームはユーザーの環境に応じて任意の文字を受け入れ、それをUTF-8などに変換しようとするサーバー側に委ねられていますか?

さらに詳しい情報をお待ちしております!

答えて

1

全体にUTF-8を使用すると、ワンストップソリューションです。残念なことに、実際に発生する問題を理解することに伴います。特定の問題がある場合は、特定の質問を投稿してください。

Wrt。 HTMLフォーム:いいえ、実際にはユーザーの環境に左右されません。ブラウザは、フォームが発生したページと同じエンコーディングでデータを送信します(または、実際に行うべきです)。ユーザーに送信するHTMLページごとに、HTTP Content-typeヘッダーにcharset =フィールドが含まれていることを確認してください。また、HTMLファイル自体にhttp-equivメタタグを置くこともできます(ユーザーがHTMLページをキャッシュまたは保存する場合に役立ちます)。したがって、HTMLページがUTF-8の場合、ブラウザによって送信されるデータもUTF-8になります。

+0

ユーザーフォームの入力に関する灰色の領域をクリアしていただきありがとうございます – brndnmg

0

私のプロジェクトでは、私のデータベースに送信される最初のクエリは

のSET NAMES「UTF8」です。

MySQL接続の確立後です。

データダンプも同じです。 .sqlファイルにデータベースのダンプを実行するとき、最初に上記のクエリを挿入します。

多くのホスティング会社や専用サーバーで問題なく何年も働いています。

+0

私のテーブルの照合順序は "utf8_general_ci"と仮定しますか? – brndnmg

+0

それはあなたが使っている母国語に依存します。ポーランドのアルファベットはアクセント記号(±、ę、ć、ł、óなど)で構成されているので、私はutf8_polish_ciを使用していますので、MySQLが知っている必要があります。 LはLの後ろにあります。 – astropanic

関連する問題