Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

mbrtoc16 - Multibyte-Zeichen vervollständigen und in UTF-16-Zeichen umwandeln

&pagelevel(4)&pagelevel

Definition

C11
#include <uchar.h>

size_t mbrtoc16(char16_t *pc16, const char *s, size_t n, mbstate_t *ps); (Ende)

Beschreibung

Falls s kein Nullzeiger ist, ermittelt mbrtoc16(), wie viele Bytes ab der Position, auf die *s, zeigt, zur Vervollständigung des nächsten Multibyte-Zeichens benötigt werden. Berücksichtigt werden auch eventuelle Umschalt-Sequenzen (Shift-Sequenzen). Es werden maximal die nächsten n Bytes überprüft. Wenn mbrtoc16() das Multibyte-Zeichen vervollständigen kann, wird das zugehörige UTF-16-Zeichen ermittelt und unter *pc16 gespeichert, sofern pc16 kein Nullzeiger ist. Ist das zugehörige UTF-16-Zeichen das Nullzeichen, entspricht der Ergebniszustand dem „initial conversion“ Zustand. Ist s ein Nullzeiger, entspricht mbrtoc16() dem Aufruf

mbrtoc16(NULL, "", 1, ps)

In diesem Fall werden die Werte der Parameter pc16 und n ignoriert.

Returnwert

Abhängig vom aktuellen Konvertierungs-Zustand gibt mbrtoc16() den Wert der ersten zutreffenden Bedingung zurück:


0

wenn die nächsten (maximal n) Bytes ein gültiges Multibyte-Zeichen ergeben, das dem UTF-16-Zeichen Null entspricht.


Anzahl der zur Vervollständigung des Multibyte-Zeichens benötigten Bytes



falls die nächsten (maximal n) Bytes ein gültiges Multibyte-Zeichen ergeben. Gespeichert wird das diesem Multibyte-Zeichen entsprechende UTF-16-Zeichen.


(size_t)-2

wenn die nächsten n Bytes ein unvollständiges, aber potenziell gültiges Multibyte-Zeichen ergeben. Es wird kein Wert gespeichert.


(size_t)-1

wenn ein Kodierfehler auftritt, das heißt die nächsten (maximal n) Bytes ergeben kein vollständiges und gültiges Multibyte-Zeichen. Es wird kein Wert gespeichert und in errno wird der Wert des Makros EILSEQ geschrieben. Der Konversions-Zustand ist undefiniert.

Hinweis

Einschränkung
In dieser Version des C-Laufzeitsystems werden nur 1-Byte-Zeichen als Multibyte-Zeichen unterstützt. (Ende)

Siehe auch

c16rtomb(), c32rtomb(), mbrtoc32().