Ich habe eine Reihe von C++ std::string
, von denen einige Multibyte-Zeichen wie á
, ä
, ç
, ß
oder ñ
haben. Wenn ich sie unter Verwendung von NSString stringWithUTF8String:
in NSString
umwandle, enthalten die resultierenden Zeichenfolgen seltsame Zeichen, die nicht gerendert werden können.Wie konvertiert man Multibyte UTF-8 std :: string in NSString?
Ich habe auch versucht NSString stringWithCString:encoding
, aber ich habe keine Codierung gefunden, die funktioniert.
Was mache ich falsch?
-
Ich habe es endlich gelöst. Die Konvertierung war gut, aber die Zeichen wurden nicht im Debugger angezeigt, als sie mit dem Telefon verbunden waren, aber sie wurden gut angezeigt, wenn sie mit dem Debugger verbunden waren. Das Problem, das ich in meinem Programm hatte, war, dass der Textrenderer bestimmte Sonderzeichen nicht unterstützte ...
Bitte fügen Sie ein Beispiel für den Inhalt dieser 'std :: string' ein. – kennytm
In der Textdatei gibt es einen String wie diesen: áäñ, der "C3 A1 C3 A4 C3 B1" als UTF8 codiert ist (bitte beachten Sie, dass jedes Zeichen zwei Bytes benötigt). – gskbyte
Wenn ich es in einer str :: string speichern, gibt length() 6 zurück, aber wenn ich es << cout, es ist gut gedruckt. – gskbyte