エンコーディングを検出してすべてをUTF-8にする
さまざまなRSSフィードから多くのテキストを読み取ってデータベースに挿入しています。 もちろん、フィードではいくつかの異なる文字エンコードが使用されています(UTF-8やISO 8859-1など)。 残念ながら、テキストのエンコーディングに問題がある場合があります。例: 「サッカー」の「ß」は、私のデータベースでは「Ÿ」のようになります。「Ÿ」の場合、正しく表示されます。 「サッカー」の「ß」が私のデータベースでは「likeƒÂŸ」のようになることがあります。もちろん、誤って表示されます。 その他の場合、「ß」は「ß」として保存されるため、何も変更されません。その後、それも誤って表示されます。 ケース2と3を回避するにはどうすればよいですか? すべてを同じエンコーディング、できればUTF-8にするにはどうすればよいですか?いつ使用する必要があるかutf8_encode()、いつ使用する必要があるかutf8_decode()があるか(効果は何であるかは明らかですが、いつ関数を使用する必要がありますか?)、いつ入力を使用して何もしなければなりませんか? すべてを同じエンコーディングにするにはどうすればよいですか?たぶん機能とはmb_detect_encoding()?このための関数を書くことはできますか?だから私の問題は: テキストが使用するエンコーディングを確認するにはどうすればよいですか? どのようにしてUTF-8に変換しますか-古いエンコーディングが何であれ? このような機能は機能しますか? function correct_encoding($text) { $current_encoding = mb_detect_encoding($text, 'auto'); $text = iconv($current_encoding, 'UTF-8', $text); return $text; } 私はそれをテストしました、しかしそれは働きません。どうしたの?