This documenta- tion describes the current state of development.
Note that interfaces and functionality may still change.

Prokee Modules:
  A
  B
  C
  D
  E
  F
  G
  I
  L
  M
  N
  O
  P
  R
  S
  T
  U
  W

     open all    |    close all

GUI Elements:
  B
  C
  I
  M
  P
  R
  S
  T

     open all    |    close all

GUI Interactions:
  B
  F
  H
  S

     open all    |    close all

GUI Layouts:
  L

     open all    |    close all

Games/Demos:
  M

     open all    |    close all

Third Party Libraries:
  P
  F
  Z

     open all    |    close all

Information about this Website / Informationen zu dieser Webseite:
In case of any questions, or comments, please feel free to contact me via email at apoll500@gmail.com.

Module utf8 [Version: v01]

This documentation describes the Prokee module interface.


Static Methods:
decode
int utf8::decode(int *utf32out,const char *utf8in)
encode
int utf8::encode(char *utf8out,int utf32in)
convert_utf8_to_utf32
int utf8::convert_utf8_to_utf32(int **utf32string,int *utf32string_length,const char *utf8string)
convert_utf32_to_utf8
int utf8::convert_utf32_to_utf8(char **utf8string,int *utf8string_length,const int *utf32string)
getBOM
int utf8::getBOM(char *utf8out)

Motivation

Das Modul bietet statische Methoden um Unicode Zeichen und Strings zwischen UTF-8 und UTF-32 zu konvertieren.

Annahmen

Der Datentyp int muss mindestens 4 Bytes groß sein um Unicode Codepoints (UTF-32 Zeichen) speichern zu können.


Static Methods

   decode


Berechnet die Zeichennummer (den Unicode Codepoint) eines utf8-codierten Zeichens.

Signature:
int utf8::decode(int *utf32out,const char *utf8in)

Parameters:
Type Name Direction Description
int *utf32out[OUT]Speicherbereich in welchen die Zeichen-Nummer (der Unicode Codepoint) des Zeichens geschrieben wird.
const char *utf8in[IN]Ein Zeichen in UTF-8 Codierung. (1 bis 4 Bytes)

Return value:
Gibt die Anzahl Bytes zurück, die das Zeichen in utf8-Codierung benötigt. Falls ein Fehler aufgetreten ist, wird 0 zurückgegeben und *utf32out wird auf 0 gesetzt.

Code: toggle

   encode


Berechnet die utf8-Codierung zu einer Zeichennummer (zu einem Unicode Codepoint) eines Zeichens.

Signature:
int utf8::encode(char *utf8out,int utf32in)

Parameters:
Type Name Direction Description
char *utf8out[OUT]Speicherbereich in welchen das Zeichen in UTF-8 Codierung geschrieben wird. Der Speicherbereich muss groß genug sein, um bis zu 4 Bytes aufzunehmen.
int utf32in[IN]Die Zeichennummer (der Unicode Codepoint) eines Zeichens.

Return value:
Gibt die Anzahl Bytes zurück, die das Zeichen in utf8-Codierung benötigt. Falls ein Fehler aufgetreten ist, wird 0 zurückgegeben.

Code: toggle

   convert_utf8_to_utf32


Konvertiert einen String von UTF-8 zu UTF-32. (Die UTF-32 Werte werden in der Byte-Reigenfolge des Systems ausgegeben.)

Signature:
int utf8::convert_utf8_to_utf32(int **utf32string,int *utf32string_length,const char *utf8string)

Parameters:
Type Name Direction Description
int **utf32string[OUT]Speicherbereich in den die Ausgabe geschrieben wird. Falls NULL angegeben wurde, oder falls *utf32string = 0 ist, wird der Speicherbereich neu alloziert. Die anfängliche Länge des Speicherbereichs wird durch *utf32string_length festgelegt. Falls *utf32string_length = 0 (oder utf32string_length = NULL) ist, so wird die anfängliche Länge (in sizeof(int)) auf die Anzahl Bytes in utf8string gesetzt. Ist der Speicherbereich für die Ausgabe zu klein, so wird die Länge so lange verdoppelt (und der Speicher neu alloziert) bis der Speicherbereich lang genug ist. Die Länge des resultierenden Speicherbereichs kann daher deutlich länger sein, als die Länge des Ausgabe-Strings. Bei wiederholtem Aufruf, sollte ein bereits allozierter Speicherbereich wiederverwendet werden, um die Anzahl der benötigten Speicher-Allozierungen gering zu halten. Wird der Speicherbereich neu alloziert (oder re-alloziert) und ist utf32string nicht NULL, so wird die neue Adresse des Speicherbereichs nach *utf32string zurück geschrieben.
int *utf32string_length[IN/OUT]Länge des Speicherbereichs utf32string in den die Ausgabe geschrieben wird. Bei Angabe von NULL oder falls *utf32string_length = 0 ist, so wird falls utf32string = NULL oder *utf32string = 0 ist, ein neuer Speicherbereich alloziert bzw. falls *utf32string != 0 ist, der bestehende Speicherbereich re-alloziert. Ist der Speicherbereich zu klein für die Ausgabe, so wird ebenso ein längerer Speicherbereich alloziert. Sofern utf32string_length nicht NULL ist, wird die neue Länge des Speicherbereichs nach *utf32string_length geschrieben.
const char *utf8string[IN]Ein null-terminierter und UTF-8 codierter String.

Return value:
Gibt die Anzahl Zeichen zurück, die nach utf32string geschrieben wurden.

Code: toggle

   convert_utf32_to_utf8


Konvertiert einen String von UTF-32 zu UTF-8. (Der UTF-32 String muss in der Byte-Reigenfolge des Systems vorliegen.)

Signature:
int utf8::convert_utf32_to_utf8(char **utf8string,int *utf8string_length,const int *utf32string)

Parameters:
Type Name Direction Description
char **utf8string[OUT]Speicherbereich in den die Ausgabe geschrieben wird. Falls NULL angegeben wurde, oder falls *utf8string = 0 ist, wird der Speicherbereich neu alloziert. Die anfängliche Länge des Speicherbereichs wird durch *utf8string_length festgelegt. Falls *utf8string_length = 0 (oder utf8string_length = NULL) ist, so wird die anfängliche Länge (in Bytes) auf die vierfache Anzahl Zeichen in utf32string gesetzt. Ist der Speicherbereich für die Ausgabe zu klein, so wird die Länge so lange verdoppelt (und der Speicher neu alloziert) bis der Speicherbereich lang genug ist. Die Länge des resultierenden Speicherbereichs kann daher deutlich länger sein, als die Länge des Ausgabe-Strings. Bei wiederholtem Aufruf, sollte ein bereits allozierter Speicherbereich wiederverwendet werden, um die Anzahl der benötigten Speicher-Allozierungen gering zu halten. Wird der Speicherbereich neu alloziert (oder re-alloziert) und ist utf8string nicht NULL, so wird die neue Adresse des Speicherbereichs nach *utf8string zurück geschrieben.
int *utf8string_length[IN/OUT]Länge des Speicherbereichs utf8string in den die Ausgabe geschrieben wird. Bei Angabe von NULL oder falls *utf8string_length = 0 ist, so wird falls utf32string = NULL oder *utf32string = 0 ist, ein neuer Speicherbereich alloziert bzw. falls *utf32string != 0 ist, der bestehende Speicherbereich re-alloziert. Ist der Speicherbereich zu klein für die Ausgabe, so wird ebenso ein längerer Speicherbereich alloziert. Sofern utf8string_length nicht NULL ist, wird die neue Länge des Speicherbereichs nach *utf8string_length geschrieben.
const int *utf32string[IN]Ein null-terminierter und UTF-32 codierter String.

Return value:
Gibt die Anzahl Bytes zurück, die nach utf8string geschrieben wurden.

Code: toggle

   getBOM


Schreibt das BOM-Zeichen (Byte-Order-Mark) für die utf8-Codierung in den angegebenen Speicherbereich.

Signature:
int utf8::getBOM(char *utf8out)

Parameters:
Type Name Direction Description
char *utf8out[OUT]Speicherbereich in welchen das BOM-Zeichen in UTF-8 Codierung geschrieben wird. Der Speicherbereich muss groß genug sein, um 3 Bytes aufzunehmen.

Return value:
Gibt die Anzahl Bytes zurück, die das BOM-Zeichen in utf8-Codierung benötigt. (Das sind immer 3 Bytes.)

Code: toggle


Copyright © 2017 - 2019 by Andreas Pollhammer