1

コンテキスト: iOS プロジェクトのソース管理は、Linux のプロプライエタリ パッケージで行われます。新しいドロップが到着すると、プロジェクト ファイルを選択して Mac に ftp し、Xcode で作業します。

問題: UTF16-LE エンコーディングのエラー メッセージのリソース ファイルは、Xcode によって UTF8 ファイルとして認識されます。ファイルをXcodeで開くと、ファイルの「テキスト設定」に「検出 - Unicode (UTF-8)」と表示されます。プロジェクトのビルドが失敗し、エラー メッセージ "破損したファイル" が表示されます。ファイルは同じワークスペース内の他のプロジェクトからも参照されており、そこでビルドが失敗し、「読み取りに失敗しました: データが破損しているため、データを読み取ることができませんでした」というエラーが表示されます。

回避策: エンコーディングを手動で UTF16-LE (再解釈) に変更すると、ベース プロジェクトは正常に動作します。ワークスペース内の他のプロジェクトでは、ファイルを UTF16-LE に変換して機能させる必要があります。

質問: 回避策を回避して、Xcode にエンコーディングを自動的に認識させることはできますか?

ps: ファイルのエンコーディングは xcodeproj ファイルにあり、「fileEncoding = 2483028224」であり、他の場所ではバイナリ ファイルとして処理されます。

4

2 に答える 2

0

自動エンコーディング検出は、ヒューリスティックに基づく非常に脆弱なプロセスであり、うまく機能することはありません。これは主に、エンコーディングなどが存在することにさえ気づいておらず、明示的に宣言することができないコンピュータの知識がない人々に何らかの利便性を提供することを目的としています。

他の人にとっては、エンコーディングを知り、明示的に宣言できるという便利さがあり、したがって常に正しくそれを取得できます。使用しているプログラムには、エンコードを明示的に宣言するための構成と設定の機能が必要です。そのため、自動エンコード検出であるブードゥーに依存する必要はありません。

于 2012-12-12T13:14:31.627 に答える