2017-02-07 3 views
-1

Ich versuche, über Codierung zu verstehen, soweit ich weiß, utf-8 kodieren bedeutet, dass es 8-Bit-Blöcke verwendet, um ein Zeichen darzustellen.Was unterscheidet NSUTF8StringEncoding und NSUTF16StringEncoding?

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

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

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

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

sein sagen: Falscher NSStringEncoding Wert 0x0000 detektiert. Angenommen NSASCIIStringEncoding. Stoppt dieses Kompatibilität Mapping-Verhalten in der nahen Zukunft

was bedeutet es?

Vielen Dank im Voraus.

+0

[unicode.org: Allgemeine Fragen, in Bezug auf UTF oder Encoding Form] (http://www.unicode.org/faq/utf_bom.html) – vadian

Antwort

-1
  • NSUTF8StringEncoding: Eine 8-Bit-Darstellung von Unicode-Zeichen.
  • NSUTF16StringEncoding: Eine 16-Bit-Darstellung von Unicode-Zeichen.

Es bezieht sich auf die Anzahl möglicher Buchstaben/Zahlen/Symbole, die ein Zeichensatz haben kann. Ein 8-Bit-Zeichen kann nur 256 mögliche Zeichen haben. Wohingegen ein 16-Bit 65.536 haben kann.

+0

Dies ist so sehr falsch. – Sulthan

+0

Also was ist das sehr falsch daran? Stimmen Sie nicht einfach ab, erklären Sie warum? –

+0

Grundsätzlich alles. Sie wissen nicht, was 'UTF8' ist, weil Sie es mit ASCII vermischen. Sowohl "UTF8" als auch "UTF16" können den gesamten Unicode-Zeichensatz codieren, der etwa 1.112.064 Zeichen umfasst. Das liegt daran, dass sie * Kodierungen mit variabler Länge * sind. Die 8 und 16 sind nicht die Anzahl der Bits pro Zeichen. – Sulthan

Verwandte Themen