Erstes Spiel, erster Bug... wie von mir vermutet... ahaha
Ankündigung
Einklappen
Keine Ankündigung bisher.
Neue Waaagh!TV-Version verfügbar
Einklappen
X
-
Gerade wenn man UTF-8 kodiert, sind Unicode-Zeichen NICHT trivial und eine gefaehrliche Fehlerquelle. Ein Beispiel: Ich kriege meine Eingabe als UCS16, ermittle daraufhin die Zeichenzahl und allokiere Speicher als char mal Zeichenzahl. Speichere ich dann einen UTF-8-String darin, laeuft der Speicher ueber und das Programm stuerzt ggf ab.
Natuerlich "sollte" man so etwas testen.
Kommentar
-
achsooooooooooooooooo!!!!!!!! alles klar!!Sven2 schrieb am 17.03. - 19:06:
Gerade wenn man UTF-8 kodiert, sind Unicode-Zeichen NICHT trivial und eine gefaehrliche Fehlerquelle. Ein Beispiel: Ich kriege meine Eingabe als UCS16, ermittle daraufhin die Zeichenzahl und allokiere Speicher als char mal Zeichenzahl. Speichere ich dann einen UTF-8-String darin, laeuft der Speicher ueber und das Programm stuerzt ggf ab.
Natuerlich "sollte" man so etwas testen.
Kommentar
-
Dir ist allerdings schon klar, dass UCS-2 bzw. UTF16 Zeichen 2 byte/16 bit benötigen im Speicher, wogegen UTF8 eben nur 1byte/8bit braucht? Jetzt erklär mir mal bitte wie du ein Speicherüberlauf verursachen willst, wenn du 8 bit in 16 bit packst ^^Sven2 schrieb am 17.03. - 19:06:
Gerade wenn man UTF-8 kodiert, sind Unicode-Zeichen NICHT trivial und eine gefaehrliche Fehlerquelle. Ein Beispiel: Ich kriege meine Eingabe als UCS16, ermittle daraufhin die Zeichenzahl und allokiere Speicher als char mal Zeichenzahl. Speichere ich dann einen UTF-8-String darin, laeuft der Speicher ueber und das Programm stuerzt ggf ab.
Natuerlich "sollte" man so etwas testen.
Kommentar
-
utf-8 ist dynamisch und nicht 8 bittig, wenn du schon ahnung vortäuschen möchtest, dann check das doch bitte vorher (z.B. http://de.wikipedia.org/wiki/UTF-8):SK | taylor schrieb am 18.03. - 11:54:
Dir ist allerdings schon klar, dass UCS-2 bzw. UTF16 Zeichen 2 byte/16 bit benötigen im Speicher, wogegen UTF8 eben nur 1byte/8bit braucht? Jetzt erklär mir mal bitte wie du ein Speicherüberlauf verursachen willst, wenn du 8 bit in 16 bit packst ^^Sven2 schrieb am 17.03. - 19:06:
Gerade wenn man UTF-8 kodiert, sind Unicode-Zeichen NICHT trivial und eine gefaehrliche Fehlerquelle. Ein Beispiel: Ich kriege meine Eingabe als UCS16, ermittle daraufhin die Zeichenzahl und allokiere Speicher als char mal Zeichenzahl. Speichere ich dann einen UTF-8-String darin, laeuft der Speicher ueber und das Programm stuerzt ggf ab.
Natuerlich "sollte" man so etwas testen.
Der Algorithmus lässt theoretisch bis zu acht Bytes lange Byteketten und dadurch über vier Billionen Zeichen zu
Kommentar
-
Siehst du, wieder was gelernt. Ich ging jetzt nicht davon aus das WC3ler violinschlüssel ingame posten, aber dann hast natürlich recht.fragpad schrieb am 18.03. - 12:31:
utf-8 ist dynamisch und nicht 8 bittig, wenn du schon ahnung vortäuschen möchtest, dann check das doch bitte vorher (z.B. http://de.wikipedia.org/wiki/UTF-8):SK | taylor schrieb am 18.03. - 11:54:
Dir ist allerdings schon klar, dass UCS-2 bzw. UTF16 Zeichen 2 byte/16 bit benötigen im Speicher, wogegen UTF8 eben nur 1byte/8bit braucht? Jetzt erklär mir mal bitte wie du ein Speicherüberlauf verursachen willst, wenn du 8 bit in 16 bit packst ^^Sven2 schrieb am 17.03. - 19:06:
Gerade wenn man UTF-8 kodiert, sind Unicode-Zeichen NICHT trivial und eine gefaehrliche Fehlerquelle. Ein Beispiel: Ich kriege meine Eingabe als UCS16, ermittle daraufhin die Zeichenzahl und allokiere Speicher als char mal Zeichenzahl. Speichere ich dann einen UTF-8-String darin, laeuft der Speicher ueber und das Programm stuerzt ggf ab.
Natuerlich "sollte" man so etwas testen.
Der Algorithmus lässt theoretisch bis zu acht Bytes lange Byteketten und dadurch über vier Billionen Zeichen zu
Kommentar
Kommentar