2012-04-05 7 views
0

ドイツ語のウェブサイトでエンコードに問題があります。このテキストは私が手にデータベースに保存されている場合引用符( "")とその他の特殊文字のPHPエンコードに関する問題

「EröffnungsfeierFISアルペンスキーWM 2011」

: 私はテキストを持っていますか?それらの引用符の代わりに。

私は成功せず、ファイルの先頭に

header("Content-Type: text/html; charset=utf-8"); 
mb_internal_encoding("UTF-8"); 
setlocale(LC_ALL, 'de_DE.utf-8'); 

を配置しようとしました。テキストの残りの部分が取り除かれ、Oなどの最初の文字に達した後、上記のテキストを挿入するとき、私は、その後、

mysql_set_charset('utf8', $connect); 

を使用しかしきた

テーブルの文字セットと照合順序はUTF-8です。 スクリプトファイルは、BOMなしでUTF-8として保存されます。

私は見た目が不足しています。

+0

あなたはうまくいったようです。あなたはそのページへのリンクを提供できますか? utf-8以外のhttp-equivメタタグを設定しましたか?テキストをデータベースに挿入するページをチェックします。 – martinstoeckli

+1

自己管理型Webサーバーに公開していますか?たぶんあなたが原因でロケールを生成するのを忘れた( '/ etc/locales.gen'を編集し、必要なコメントを外し、' locale-gen'をルートとして)、それは何度も起こりました:-) –

答えて

0

私が助けたことは助けになりました。特にmysql_set_charset('utf8', $connect);。 問題は、別のプログラマー(utf8_decode)によって残された不要なコードがあることでした。 utf-8エンコーディングを他の方法で処理できないように見えます。

また、最初からエンコーディングと一致している場合は、mysql_set_charset('utf8', $connect);は本当に必要ではないことが分かりました。

1

1)データベースのスキーマを確認してください。テキストフィールドはutf-8を保存するように設定されていますか?

2)投稿投稿すると、UTF-8が送信されません。それは正しいContent-Typeヘッダーを持っていますか? echo urlencode($var)は何を表示しますか? (これはあなたが得ている生のバイトを見るためのきちんとしたハックです)

+0

テーブルの文字セットはUTF8。ファイルにはutf8_general_ciの照合順序があります。 –

+0

別の解決策で回答を更新 – Cal

関連する問題