2017-07-11 2 views
0

In Java-Code kann dieser Code die Hex-Zeichenfolge "efbfbc";iOS von UTF8 nach ISO-8859-1

new String((((char)-4)+ "").getBytes("utf8"),"iso8859-1") 

Wie kann es in iOS Objective-C implementieren?

by Byte -4, erhalten Hex-Zeichenfolge "efbfbc";

+1

Mögliches Duplikat von [Konvertierung von UTF-8-Codierung in ISO 8859-1-Codierung mit NSString] (https://stackoverflow.com/questions/4553388/convert-utf-8-encoding-to-iso-8859-1- encoding-with-nsstring) –

+0

In UTF-8 sind die Bytes 'EF BF BC' Unicode Codepunkt U + FFFC. '(char) -4' ist hex' 0xFFFC', also warum nicht '0xFFFC' anstelle von' -4' verwenden, damit es einfacher zu lesen ist? In jedem Fall [gibt es viele Möglichkeiten, eine Hex-Zeichenfolge für ein Byte-Array zu erstellen] (https://stackoverflow.com/questions/9655181/). Ich würde ISO-8859-1 dafür nicht verwenden, insbesondere da [viele Bytes darin nicht definiert sind] (https://en.wikipedia.org/wiki/ISO/IEC_8859-1), damit Sie am Ende landen können ''?'' Zeichen manchmal, oder sogar eine Ausnahme: "* Das Verhalten dieses Konstruktors, wenn die gegebenen Bytes im gegebenen Zeichensatz nicht gültig sind, ist nicht spezifiziert *". –

+0

Für iOS, siehe [Wie konvertiert man einen NSString zu Hexadezimalwerten] (https://Stackoverflow.com/questions/3056757/) und [Wie kann ich NSdata in hexadezimale Zeichenfolge konvertieren?] (Https://stackoverflow.com/) Fragen/16521164 /). –

Antwort

0

Ich habe das Problem zu lösen.

unichar asciiChar = -4; 
NSString *string = [NSString stringWithCharacters:&asciiChar length:1]; 
string = [NSString stringWithCString:[string UTF8String] encoding: NSISOLatin1StringEncoding]; 

jetzt, string hex "efbfbc"

dankt allen.

0
NSString *string = @"efbfbc"; 
char converted[([string length] + 1)]; 
NSString* str = [[NSString alloc] 
       initWithCString: converted encoding: NSISOLatin1StringEncoding]; 

NSLog(@"Your result string: %@",str); 

ich unten Ergebnis bekam:

enter image description here

Schauen Sie sich diese AppleDoc für weitere Informationen über intiWithCString Methode. Es wird dir eine klare Vorstellung geben.

+0

Wie soll das funktionieren? 'converted' ist ein leeres' char'-Array. – rmaddy

+0

Es wird die Eingabe von Ihrer Zeichenfolge erhalten, die Sie konvertieren müssen. – Nirmalsinh

+0

Huh? Wie wird 'konvertiert' in Ihren Code eingefügt (Hinweis: ist es nicht). – rmaddy