mysqlデータベースに特殊文字や記号を格納する必要があります。だから私はそれを 'ü'のように保存するか、それを '& uuml;のようなHTMLコードに変換することができます。データベースにデータを格納するときにHTMLエンティティを使用する必要がありますか?
どちらが良いか分かりません。
また、私は '♥'、 '' 'のようなシンボルを持っています。
いずれか良い方をお勧めしますか?他の方法があるかどうかもお勧めします。
ありがとうございました。
mysqlデータベースに特殊文字や記号を格納する必要があります。だから私はそれを 'ü'のように保存するか、それを '& uuml;のようなHTMLコードに変換することができます。データベースにデータを格納するときにHTMLエンティティを使用する必要がありますか?
どちらが良いか分かりません。
また、私は '♥'、 '' 'のようなシンボルを持っています。
いずれか良い方をお勧めしますか?他の方法があるかどうかもお勧めします。
ありがとうございました。
HTMLエンティティは、輸送がバイナリセーフではない場合、およびユーザーエージェント(ブラウザ)がトランスポート層またはサーバーの文字コードエンコーディングをサポートしていない場合に、ワイヤを介して文字情報を転送するために数年前に導入されました。
HTMLエンティティはごく基本的な文字(&
、;
、a-z
と0-9
)とそれらの文字が含まれていたよう
データベースに何かを保存すると、通常は制御されているため、データベースに何がどのように格納されるのかが分かっているため、これらの問題は発生しません。
たとえば、データベース内のテキストにUnicodeを許可すると、すべての文字を格納できますが、実際には特別なものはありません。ここでデータベースを知る必要があることに注意してください。いくつかの技術的な詳細があります。データベース接続のための文字セットエンコーディングがわからないので、そこに格納するテキストをデータベースに正確に伝えることはできません。しかし、一般的に、テキストを保存して後で取得するだけです。対処する特別なものはありません。あなたが代わりにプレーンな文字のHTMLエンティティを使用する場合
は、実際には欠点があります:ü
はLATIN-1でü
よりもはるかに大きい、UTF-8、UTF-16:
本当の楽しみは、両方のコンセプトをミックスするときに始まります。あなたは本当に行きたくない場所に来る。あなたがそれを必要としないので、ただしないでください。
これは5歳ですが、私は最後の段落で言及した「本当の楽しみ」に証言したいと思います。我々は 'latin1' ANDフィールドと' utf-8'照合フィールドを持つテーブルをたくさん持っているMySqlデータベースを持っています。私たちは特殊文字(主に登録商標と商標)とhtmlエンティティ(場合によっては二重エンコードされたhtmlエンティティ、つまり '& reg; ')をデータベースに保存しました。少年少女は、この道を下ってはいけません。データベースに文字を格納し、それに固執する方法については、賢明な決定を下します。データを取り出すときは、必要に応じて変更することができます。 – DerProgrammer
データをそのままデータベースに残しておきます。 HTMLのエンティティは、HTMLに必要となるまで使用しないでください。いつ他の場所でデータを使用したいのか、Webページで使用したくないのかはわかりません。
+1ですが、HTMLを出力するときには 'htmlentities'も必要ありません。これは' htmlspecialchars() 'がXSSを防ぐために行います。 'htmlentities'は適切に設定された環境では決して*必要ないはずです –
@Pekka、私は関数の使用を提案していませんでした。はい、 'htmlspecialchars()'は実際にデータを出力するための好ましい方法です。 – Brad
私の提案は他の投稿者を反映していますが、をデータベースに保存する際に変換しないでください。変換に対する
いくつかの理由:
ü
を単語で検索すると[word]+ü+[/word]
となり、ü
=>[word]+ü+[/word]
のhtmlに相当する文字列比較を行う必要があります。
あなたのタイトルを少し変更する自由を取った - あなたのタイトルは問題ありませんでしたが、このやり方で、将来の同様の質問を見つけるのは簡単です。 (私はちょうど検索し、これを見つけるのが簡単ではないことを認識しました) –
これは、HTMLを格納する場所で使用されている文字セットによって異なります。通常は、すべての文字をカバーする文字セットを使用する必要があります(したがって、「特別」なのではありません)。データは正規化された形式で格納でき、データベースの各テキストフィールドには文字エンコーディングの横に特殊なエンコーディングは含まれませんとにかく – hakre
@Pekkaそれは問題ありません。このように他の人に役立つなら、私はあなたに感謝しなければなりません。 –