2017-02-07 12 views
-1

Я пытаюсь понять о кодировании, насколько я знаю, кодировка utf-8 означает, что он использует 8-битные блоки для представления символа.Что между NSUTF8StringEncoding и NSUTF16StringEncoding отличается?

NSString *NSUTF8Encoding = [[NSString alloc]initWithCString:"String" encoding:NSUTF8StringEncoding]; 

NSString *NSUTF16Encoding = [[NSString alloc]initWithCString:"String" encoding:NSUTF16StringEncoding]; 

NSLog(@"NSUTF8StringEncoding :%@",NSUTF8Encoding); 

NSLog(@"NSUTF16StringEncoding :%@",NSUTF16Encoding); 

его скажем: Неправильное значение 0x0000 NSStringEncoding обнаружено. Предполагая NSASCIIStringEncoding. Остановит это картографическое поведение совместимости в ближайшем будущем.

Что это значит?

Заранее спасибо.

+0

[unicode.org: Общие вопросы, касающиеся UTF или кодирующей формы] (http://www.unicode.org/faq/utf_bom.html) – vadian

ответ

-1
  • NSUTF8StringEncoding: 8-разрядное представление символов Юникода.
  • NSUTF16StringEncoding: 16-разрядное представление символов Юникода.

Это относится к количеству возможных букв/цифр/символов, которые может иметь набор символов. 8-разрядный символ может содержать только 256 возможных символов. В то время как 16-бит может иметь 65 536.

+0

Это очень неверно. – Sulthan

+0

Так что же это за ошибка? Не просто голосуйте, объясните, почему? –

+0

В принципе все. Вы не знаете, что такое 'UTF8', потому что вы смешиваете его с ASCII. Оба 'UTF8' и' UTF16' могут кодировать весь набор символов Unicode, который составляет около 1112 064 символа. Это потому, что они являются * кодировками переменной длины *. 8 и 16 - это не количество бит на символ. – Sulthan