テキストファイルの信頼できるコードページ検出:Behind Boms
ソフトウェア開発における多様なソースからのテキストファイルの処理には、正確なエンコード識別が必要です。 コードページの検出が誤っていないと、データの破損が発生します。 'sStreamReader
はUTF-8やその他のユニコードエンコーディングに役立ちますが、IBM 850やWindows-1252などのコーデュページには効果がありません。
detectEncodingFromByteOrderMarks
この問題は、自動検出の制限を強調しています。 専門家は、明示的な情報なしの正確なコーデュページの決定は事実上不可能であることに同意します。 人間の判断と教育を受けた推測がしばしば必要になります。
一般的な開発者戦略には、メモパッドのようなテキストエディターでファイルを検査することが含まれます。 歪んだ文字を分析する(例えば、「フランソワ」のような名前が誤って表示される)により、言語とコンテキストに基づいて情報に基づいた推測が可能になります。
別のアプローチには、コードページの識別を支援するユーティリティの作成が含まれます。 ユーザーは、ファイルから既知のテキストサンプルを提供します。その後、アプリケーションはさまざまなコードページを試み、もっともらしいデコードを生成するものを表示します。複数のコードページが許容可能な結果をもたらす場合、選択を改善するために追加のテキストサンプルを使用できます。 ただし、この方法は間違いなく、ある程度の解釈に依存しています。
Joel Spolskyの「すべてのソフトウェア開発者が絶対に絶対に、Unicodeとキャラクターセット(言い訳なし!)について積極的に知っておく必要がある」と強調しています。 エンコーディングを理解することは、正しい表示と解釈のために重要であり、自動検出の制限と、あいまいさをエンコードするテキストファイルを解決するための人間の介入の必要性を強調しています。以上がバイトの順序マークが失敗したときに、テキストファイルのコードページを確実に検出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。