2017-01-30 8 views
0

Мое приложение должно читать текстовые файлы, закодированные в GB2312. Вот текущий код.Как читать закодированные текстовые файлы GB2312 с использованием Swift 3.0

SGFString = try String(contentsOf:path) 

Он выдает исключение.

не может быть открыт, потому что текстовое кодирование его содержимого не может быть определено .

При изучении значений String.Encoding нет GB2312. Что было бы лучшим способом прочитать текстовые файлы GB2312?

Благодаря Ray

+1

[Это] (http://stackoverflow.com/a/41477709/6541007) или [это] (http://stackoverflow.com/a/29122270/6541007) может быть помощью. Как вы знаете, GB-18030 является лучшим совместимым стандартом, включая GB-2312. – OOPer

ответ

0

Спасибо за помощь OOPer в. Я скопировал часть кода из ссылок, теперь он работает. Вот код:

extension String.Encoding { 
    static let gb_18030_2000 = String.Encoding(rawValue: CFStringConvertEncodingToNSStringEncoding(CFStringEncoding(CFStringEncodings.GB_18030_2000.rawValue))) 
} 

Gb2312String = try String(contentsOf:path, encoding:String.Encoding.gb_18030_2000)