0

スペイン語のブログのフィードをいくつか調べて、データベースに保存しています。たとえば、次の単語Diseño!は、フィードを取得するスクリプトで正しく表示されますが、データベースに保存すると、のように保存されますDiseñó!。データベースをutf8に設定しています。私はこのように見えるすべての質問に答えたと思いますが、それを修正するものは何もありません。HTMLの文字セットをutf8からiso-8859に変更しましたが、それでもHTMLで正しく表示できますが、データベースに保存すると表示されません。誰かが解決策を持っていますか?ありがとう!

4

3 に答える 3

0

使用していSimplePie_Cache_MySQLますか?バグがあるようです。データベース接続のエンコーディングが設定されていません。これは、データがすでにutf8にある場合でも、接続がlatin1(デフォルト)からutf8にデータをサイレントにエンコードすることを意味します。

これを修正するencoding=utf8には、の接続パラメータに追加しますSimplePie_Cache_MySQL.php

別の問題もあります。後でデータベースを読み取るときに、ページのエンコーディングをutf-8に設定していません。これは、正しくエンコードされたデータが変更されて表示されることを意味します。

更新:よく見るとSimplePie_Cache_MySQL、問題は別の場所にあるはずです。

于 2012-10-18T05:55:37.800 に答える
0

推測では、「Diseño!」のソースであるページ おそらくiso-8859-1またはwindows-1252でエンコードされており、変換せずにデータベースに保存されています。

その場合は、http://php.net/manual/en/function.mb-convert-encoding.phpのようなものを使用して、文字列をエンコードからutf-8に変換する必要があります。

于 2012-10-18T03:38:45.690 に答える
-1

DBへの接続を確立する前に、文字エンコードを設定する必要があります。

あなたはこれを使うことができます:

mysql_set_charset( 'utf-8' );

php.netでこれを確認し、 mysqliやpdoなどの代替手段の推奨リンクをたどることもできます。

さよなら

于 2012-10-18T06:12:47.303 に答える