0

phpはすべての文字セットエンコードを含む文字列をutf8に変換できますか?

動作しないソリューション:

  1. utf8_encode($string)-しかし、ISO-8859-1文字列をUTF-8にエンコードするのはそれだけですか?
  2. iconv($incharset, $outcharset,$text)-しかし、文字列の現在のエンコードをどのように見つけることができますか?(文字列だけでなく、html domドキュメントの文字列部分の場合にのみ可能です)

ありがとう

4

2 に答える 2

5

PHPでサポートされている任意のエンコーディングからiconv()UTF-8に文字列を変換することができます。

しかし、文字列の現在のエンコードをどのように見つけることができますか?

現在のエンコーディングを「見つける」必要はありません。スクリプトは常にそれが何であるかを知っている必要があります。クエリするリソースは、適切にエンコードされている場合、content-typeヘッダーまたはその他の方法でエンコードされます。

Artefactoが言うように、使用する可能性はありますがmb_detect_encoding()、これは信頼できる方法ではありません。プログラムのデータフローでは、文字列がどのエンコーディングであるかを常に定義する必要があります(できれば、内部でUTF-8を使用することをお勧めします)。これが方法です。

于 2010-07-28T23:12:02.003 に答える
1

一般に、を使用して特定の文字列のエンコーディングを知ることはできません。

あなたができることは推測することだけです。がありますがmb_detect_encoding、これは実際にはうまく機能しません。さらに、言語キューを使用するブラウザで使用されるような、より複雑なヒューリスティックがあります。

于 2010-07-28T23:10:58.370 に答える