swift UTF8-Kodierung und nicht-UTF8-Zeichen
habe ich einen text aus der json-Datei, in diesem text habe ich angewendet utf8 Kodieren, aber diesen encoder nicht zu erkennen, ein nicht-standard Charakter àèìòù und es ist Hauptstadt char, es ist eine Methode, um zu reinigen, ma-string ?
hier meine func
func stringToUTF8String (stringaDaConvertire stringa: String) -> String {
let encodedData = stringa.dataUsingEncoding(NSUTF8StringEncoding)!
let attributedOptions = [NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType]
let attributedString = NSAttributedString(data: encodedData, options: attributedOptions, documentAttributes: nil, error: nil)!
//println(attributedString.string)
return attributedString.string
}
danke
Was byte-output ist
Bitte zeigen Sie einen (kurzen) input-string demonstrieren, das problem zusammen mit dem tatsächlichen output und den erwarteten Ausgang.
String
geben Sie? Was würden Sie erwarten? Auch ich bin nicht sicher, dass Ihre Eingabe von nicht-standard Charakter in StackOverflow korrekt ging.Bitte zeigen Sie einen (kurzen) input-string demonstrieren, das problem zusammen mit dem tatsächlichen output und den erwarteten Ausgang.
InformationsquelleAutor luca carboni | 2015-01-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
ich habe die Lösung gefunden,
die utf8-nehmen 8-bit der ascii-Tabelle, und die utf16 nehmen 16bit ascii-Tabelle, ist die Lösung einfach durch modifing meine func in
einfache ad-funktionale
encodedData
enthalten soll, den richtigen Inhalt, meine Vermutung ist, dass NSAttributedString verwendet UTF-16-Codierung, nachdem alle, ist die einzige Codierung unterstützt von NSString, die Dokumentation ist nicht klar, obwohl dies.Ich hatte das gleiche problem und klappte es muss aufgrund
NSAttributedString
. Die Dokumentation nie angeben, welche Kodierung der parameterdata
haben sollte, aber ich denke, wir haben verifiziert, dass es sein MUSSNSUTF16StringEncoding
. Intern werden Sie wohl entschlüsseln.Die grundlegende
NSString
vertreten ist, mit UTF-16, so dass die Standard-Sinn machen würde. That being said, können Sie angebenoptions: [characterEncoding: NSUTF8StringEncoding]
entsprechend der eingehenden Daten.InformationsquelleAutor luca carboni