4

CP1251 (キリル文字) でエンコードされたフィールドを持つ AVMetadataItem があります。item.stringValue を読み取った後、ガベージが表示されます - 正しくエンコードされていない文字列です。その文字列を生の UTF8 に変換してから、CP1251 エンコーディングを使用して新しい文字列を作成しようとしましたが、結果は nil です。item.dataValue を取得しようとしました - ダイスはありません。生のリスト データが含まれています (bplist で始まります...)。

どんなアイデアでも大歓迎です。

前もって感謝します。

4

4 に答える 4

3

Swift 2.0 ソリューション:

let origTitleMeta: NSData = (<AVMetadataItem>.timedMetadata?.first?.stringValue?.dataUsingEncoding(NSISOLatin1StringEncoding, allowLossyConversion: true))!

let convertedTitleMeta: String = String(data: origMeta, encoding: NSUTF8StringEncoding)!
于 2016-06-15T08:44:08.207 に答える
2

私はMike Ashの NSPropertyListReader_binary1 を使用して生データを取得し、それをマングリングして、NSStringがエンコードされるようにしました。

恐ろしい - しかし、うまくいった。

于 2012-03-20T20:20:24.497 に答える