Rückgabewerte nur noch in Chinesisch
-
firefly schrieb:
UTF8: 1 Byte Kodierung, kompatible zu ASCII
Das stimmt aber nicht in jedem Fall. Umlaute sind nämlich z.B. 2 Byte groß. Zudem ist wenn dann ASCII zu UTF8 kompatibel und nicht umgekehrt, da UTF8 deutlich mehr Zeichen kennt.
-
inflames2k schrieb:
firefly schrieb:
UTF8: 1 Byte Kodierung, kompatible zu ASCII
Das stimmt aber nicht in jedem Fall. Umlaute sind nämlich z.B. 2 Byte groß. Zudem ist wenn dann ASCII zu UTF8 kompatibel und nicht umgekehrt, da UTF8 deutlich mehr Zeichen kennt.
Ok etwas ungünstig ausgedrückt
UTF-8 ist eine Byte Kodierung
http://unicode.org/faq/utf_bom.html#utf8-1
In UTF-8 hat eine code unit 1 byte. Aber damit man in UTF-8 alle in UNICODE definierten Zeichen darstellen kann werden bis zu 4 code-units benötigt -> 4 bytes.Bei UTF-16 hat eine code-unit 2 bytes
Bei UTF-32 hat eine code-unit 4 bytes
-
firefly schrieb:
Bei UTF-16 hat eine code-unit 2 bytes
Ein weit verbreiteter Irrglaube, der schon viele Bugs verursacht hat.
-
Bitte seid mir nicht böse aber ich bin jetzt irgendwie verwirrt.
Ich wollte doch extra weg von Ansi zeichen um auch fremdschriften anzeigen zu können, wäre da jetzt nicht eine Konvertierung vier ungünstig?
Oder aber ich stehe noch auf der Leitung und hab noch nicht verstanden was ihr mir sagen wollt.
-
m.e. schrieb:
firefly schrieb:
Bei UTF-16 hat eine code-unit 2 bytes
Ein weit verbreiteter Irrglaube, der schon viele Bugs verursacht hat.
Sorry, zu schnell draufgehauen. Eine Codeunit ist 2 Bytes groß, da hast du Recht. Nur kann ein Zeichen auch hier aus mehreren Units aufgebaut sein, was viele nicht wissen.
-
Hier noch zwei Artikel zum Thema:
http://utf8everywhere.org/
http://www.joelonsoftware.com/articles/Unicode.html
-
Valyse schrieb:
Ich wollte doch extra weg von Ansi zeichen um auch fremdschriften anzeigen zu können, wäre da jetzt nicht eine Konvertierung vier ungünstig?
Wenn die Datenbank UTF8 speichert und du UTF8 liest sollte alles passen. - Speichert die Datenbank etwas anderes dann musst du in deiner Anwendung eben auf diese Codierung wechseln.
-
m.e. schrieb:
m.e. schrieb:
firefly schrieb:
Bei UTF-16 hat eine code-unit 2 bytes
Ein weit verbreiteter Irrglaube, der schon viele Bugs verursacht hat.
Sorry, zu schnell draufgehauen. Eine Codeunit ist 2 Bytes groß, da hast du Recht. Nur kann ein Zeichen auch hier aus mehreren Units aufgebaut sein, was viele nicht wissen.
Ich habe nie behauptet dass bei UTF-16 alle zeichen aus nur einer code unit bestehen
es war nur als Beispiel gemeint das UTF-16 mehr als ein byte pro code unit hat
-
inflames2k schrieb:
Valyse schrieb:
Ich wollte doch extra weg von Ansi zeichen um auch fremdschriften anzeigen zu können, wäre da jetzt nicht eine Konvertierung vier ungünstig?
Wenn die Datenbank UTF8 speichert und du UTF8 liest sollte alles passen. - Speichert die Datenbank etwas anderes dann musst du in deiner Anwendung eben auf diese Codierung wechseln.
Oder beim auslesen der Daten aus der DB eine Konvertierung in eine der UNICODE codierungen vornehmen
-
Wer nutzt UTF-32 überhaupt?
UTF-8 ist/sollte gängiger Standard sein. Windows hält sich leider nicht unbedingt dran und arbeitet dann mit UTF-16, da ist Konvertierungsbedarf. Wo sonst (wenn man ASCII vernachlässigt)?
-
Ich habs immer noch nciht kappiert. Wie bekomme ich das UTF16 den dann in wieder in UTF8 zurück und vor allem in lesbar?
-
Schau mal hier: http://stackoverflow.com/questions/7153935/how-to-convert-utf-8-stdstring-to-utf-16-stdwstring
-
Aber das ist doch von 8 zu 16 ich will doch in die andere Richtung.
Ich hab jetzt einiges schon versucht. Aber immer von ich recv() aufrufe ist mein Rückgabewert nicht lesbar. Die Zeichenlänge stimmt und über Wireshark sehe ich auch das der Text richtig übergeben wird, aber beim Debuggen im Quellcode kommt es falsch an, irgendwie habe ich das Gefühl ich habe noch einen ganz elementaren Fehler in der ganzen Verbindung mit der Socketverbindung. Nur komme ich nicht auf den Fehler. Ich sehe ja auch das die Werte die ich zur DB schicke alle passen und im Klartext sind.
Muss ich den wirklich das Result aus recv umwandeln oder dürfte es da eigentlich schon gar nicht falsch ankommen.
Tut mir wirklich leid wenn ich jetzt wie doof wirke, aber ich verstehe gefühlt mit jeder google Suche nur noch weniger.
-
inflames2k schrieb:
firefly schrieb:
UTF8: 1 Byte Kodierung, kompatible zu ASCII
Das stimmt aber nicht in jedem Fall. Umlaute sind nämlich z.B. 2 Byte groß. Zudem ist wenn dann ASCII zu UTF8 kompatibel und nicht umgekehrt, da UTF8 deutlich mehr Zeichen kennt.
ASCII kennt sowieso keine Umlaute.
