• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:文字コードの検出が正しいかを検証する方法)

PHPの文字コード検出方法と正確さの検証

このQ&Aのポイント
  • PHPの mb_detect_encoding 関数を使用して文字コードを検出する方法について、正確性を確認する手段があります。
  • 検出された文字コードをもとに元の文字列と一致するかを確認することで、検出された文字エンコーディングが正しいかを判断できます。
  • ただし、文字化けしている可能性がある場合も考慮する必要があります。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

>他に何か良い方法はありませんでしょうか? #1で書いたとおり、文字コードを「完璧」に自動判別することは100%不可能です。 ある程度でよければご提示の方法で使用に耐えうる範囲だと思います。

その他の回答 (2)

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.2

文字コードの変換は、逆変換すると元に戻ることが多いです。 コードA (エンコードa)  ↓エンコードa→UTF-8変換 コード B(UTF-8)  ↓UTF-8→エンコードa変換 コードA (エンコードa) ところが、これは、エンコードが違っていてもだいたい成り立ちます。 コードA (エンコードaだけどエンコードbと判定された)  ↓エンコードb→UTF-8変換 コード C (UTF-8)  ↓UTF-8→エンコードb変換 コードA (エンコードa) と、判定に失敗しても前後が同じになるケースが無いわけでもありません。 また、対応する文字が無かったり、1対多対応で変換/逆変換で文字が変わったりがあるので、正しく判定されても違う文字になることもあります。

noname#244970
質問者

補足

ご回答ありがとうございます。 他に何か良い方法はありませんでしょうか?

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

>完璧でしょうか? mb_detect_encoding()自体の信頼性の問題なのでどこまで行っても 完璧はありえません。 ある程度確率は高いですがしょせん「たぶんこうじゃね?」という あてずっぽでしかないということです。 文字コードの判定については昔から、「美乳処理」などいろいろ 工夫されてきていますが、テキストファイルはどこまでいっても テキストファイルなので決め手に掛けます。 かといってBOMで処理するのはHTTPのヘッダ処理の兼ね合いから 敬遠される場合が多いようです。

noname#244970
質問者

補足

ご回答ありがとうございます。 他に何か良い方法はありませんでしょうか?