2012-03-07 6 views
0

私は自分のデータベースからいくつかのコンテンツを引き出しています。私はそれを表示すると、ときどきコンテンツ全体にいくつかのランダムな文字が表示されています。私はスペースがあった場所がたくさんあると思っています。私はまたいくつかの場所で’を得ています。データベースからコンテンツを取得する際に、これらの文字の原因は何ですか?

phpMyAdminで表示しても文字が表示されません。コンテンツを正しくエンコードするにはどうすればよいですか?私はコンテンツを挿入する前にやるべきことは何か、それとも私が表示しているときにやっていることですか?

答えて

1

データにはどのような文字セットが格納されていますか?例えば

データはUTF-8として保存されている場合は、データを表示する際に、そして、あなたはページのエンコーディングも同様にUTF-8に設定されていることを確認する必要があります。

他の文字セットに格納されている場合は、適切なページエンコーディングを設定します。

あなたは適切なヘッダを渡すことによってこれを行うことができます。

Content-Type: text/html; charset=utf-8 

またはブラウザ、ドキュメントに知らせる:

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

そしてHTML5での:

<meta charset="utf-8" /> 
+0

、 '<メタ文字セットは= "UTF-8"/>'動作しますが、 ' Motive

+0

''はHTML5であり、 'はHTML4用です。 HTML5のdoctypeを使用していますか? – F21

+0

いいえ、ヘッダーが添付されていないビューでテストを行っているだけなので、Doctypeも何も宣言されていません。 – Motive

1

UTF-8はCP1252と誤解されています。適切なヘッダーがすべて適切に配置されていることを確認します。

>>> print u'’'.encode('cp1252').decode('utf-8') 
’ 
1

IMO、あなたのファイル/データベース(または少なくともすべての場所で同じエンコーディング)でutf-8で作業するのが最善の方法です。

あなたのアプリケーション/ config/database.phpに$ db ['default'] ['char_set']と$ db ['default'] ['dbcollat​​']がありますかあなたのビュー/ htmlで使用します。 PMAでデータが正しく表示されたら、問題があなたの意見にあるかもしれません。

は、あなたのテキストを印刷するときutf8_encodeutf8_decodeを使用してみてください。何らかの理由で

関連する問題