2009-04-13 19 views
2

MySQLデータベースからWebページにデータを取り込むとき、データ内のすべての省略記号(...)は、FirefoxまたはIE7の正方形ボックスにwithで表示されます。省略形はHTMLで閲覧不可

誰もこの問題を以前に遭遇しましたか?

ありがとうございました。

更新1:私は元の省略記号 '...'を '...'(3つの点)で変更しましたが、今は動作しますか?これは何だろうか?

+0

大変申し訳ございません。私はもはや編集していない、またはちょうどお互いの編集を壊すことによって、貧しい男のポストをCWモードに投げるだろう! –

+0

私の編集を許して、括弧がよりよく知られた用語かもしれないと思った。 – Soviut

+0

ああ、私はそれを得る!あなたは彼が括弧(または丸い括弧)について話していると思ったが、省略記号は括弧の中のもので、3つの点のように見える。 –

答えて

3

データベースからUTF-8データをISO(またはその他の)エンコーディングのWebサイトにプルする可能性があります。

データベース内のエンコーディングとは何ですか、あなたのhtmlのヘッダエンコーディングは何ですか?

+0

私はデータベースがWindows-1252でエンコードされていると思います(ISO-8859-1は持っていなくても...)、ウェブサイトはUTF-8です。 – d0k

2

これは本当にエンコードの問題ですが、これを回避しようとする代わりに、省略記号を「& hellip;」としてエンコードするより適切な方法を使用することをお勧めします。 HTMLエンティティ。

Firefoxの場合は、[表示]> [文字エンコーディング]を選択してテストすることもできます。ほとんどの場合、あなたが追加する必要が終わるだろう:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 

または

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/> 
+0

エンティティは実際には... – mipadi

+0

個人的には、HTMLエンティティは「より正確」とは考えていません。それらはエンコードの問題に対する不完全な回避策であり、HTML特有のものであり、まったく単純ではありません。 –

+0

マイケルに同意します。エンティティを使って回避するのではなく、ここでエンコーディングの問題を修正する方がよいでしょう。それは遅かれ早かれその醜いヘッドをとにかく後退させるだろう。 – Joey

1

それはあなたが常に& hellipとそれらを置き換えることができ、あなたのデシベル

の文字セットに依存します。

1

私は元の省略記号 '...'を '...'(3つの点)で変更しましたが、今は動作しますか?

これはおそらくあなたがやりたいことです。文字U+2026 HORIZONTAL ELLIPSISは、Unicodeと省略記号がそれ自身の文字として存在するWindows cp1252(西ヨーロッパのコードページ)のような古い文字セット間のラウンドトリップを助けるために含まれる「互換性」文字です。

(現代のシステムでは、3つのドットを使用しているだけですが、省略記号でスペースを異ならせたい場合、ほとんどはそうしませんが、3つのドットが入力されたときに自動合字を提供できます。)データで

:-)

すべて省略記号の

楕円は、FirefoxやIE7で四角いボックス内で表示されます。

他の非ASCII文字もすべて同様の影響を受けている可能性があります。 「スマート引用符」や小文字のマークを使用すると、同様の結果が表示されることがあります。

ほとんどの場合、データベースにはWindows cp1252バイトの文字が格納されていますが、それらを吐き出す最後のWebページはUTF-8です(既定または意図的に設定されているため)。

ブラウザの[表示] - > [エンコーディング]メニューに移動して、[UTF-8]ではなく[西ヨーロッパ言語](1252)を選択して確認できます。 の場合、生成されるWebページのエンコーディングをcp1252に変更することでこの問題を解決することができます。すべてがUTF-8になるようにデータベースの内容を変更することをお勧めします。すべてのUnicode文字がアプリケーションで使用可能になります。

どのようにこれを行うかは、使用している言語/プラットフォームによって異なります。