Apple のドキュメントに従って、エンコーディングが不明なテキスト ファイルのコンテンツを表示しようとしています。
stringWithContentsOfFile:usedEncoding:error: または initWithContentsOfFile:usedEncoding:error: (または URL ベースの同等のもの) を試してください。これらのメソッドは、リソースのエンコーディングを決定しようとし、成功した場合は、使用されたエンコーディングを参照によって返します。
(1) が失敗した場合は、エンコーディングとして UTF-8 を指定して、リソースの読み取りを試みます。
(2) が失敗した場合は、適切なレガシー エンコーディングを試してください。ここでの「適切」は、状況によって少し異なります。それはデフォルトの C 文字列エンコーディングかもしれませんし、ISO や Windows Latin 1 かもしれませんし、データがどこから来ているかにもよりますが、何か他のものかもしれません。
これは常に機能するとは限りません。エンコーディングを検出するためのより信頼できる方法はありますか?