Возможно, мои навыки Google - это мусор, но я не мог найти, как конвертировать NSData
из HTML в NSString
.Какую кодировку использовать для NSData из загруженного HTML (iPhone)?
Я использую initWithData:encoding:
, но если я использую NSUTF8StringEncoding
он просто возвращает ноль, и если я использую NSASCIIStringEncoding
он возвращает свою строку, но некоторые элементы заменяются вверх тормашками вопросительными знаками. Я бы просто разбирал их, но это случается с несколькими разными персонажами, поэтому я не могу. Любой способ изменить это?
EDIT: В частности, это апостроф и тире, которые вызывают проблемы.
Все зависит от того, для чего собственно кодируется фактическая строка HTML. Это не ASCII, и похоже, что это тоже не UTF8 (хотя часто это происходит с современными веб-серверами). В заголовке ответа HTTP может указываться кодировка, или заголовок HTML (как ASCII) также может указать его. Похоже, вам нужно настроить динамически. –
Заголовки ответа должны иметь значение «Content-Type», которое включает в себя 'charset' для использования. –
Если загруженная страница содержит данные со смешанными наборами символов, вы, вероятно, захотите что-то сделать, чтобы очистить ее, прежде чем запускать ее через 'initWithData: encoding:'. Заголовок «Content-Type» не может полностью доверять, поскольку любые данные могут быть возвращены с сервера. – Kekoa