Im Grunde wollen Sie mit Zeichenketten im Speicher umgehen wie wchar_t
Arrays anstelle von char. Bei jeder Art von E/A (z. B. Lesen/Schreiben von Dateien) können Sie mit UTF-8 kodieren/dekodieren (dies ist wahrscheinlich die gängigste Kodierung), was einfach genug zu implementieren ist. Googeln Sie einfach die RFCs. In-memory sollte also nichts Multi-Byte sein. Eine wchar_t
steht für ein Zeichen. Bei der Serialisierung müssen Sie jedoch in etwas wie UTF-8 kodieren, wo einige Zeichen durch mehrere Bytes dargestellt werden.
Sie müssen auch neue Versionen von strcmp
usw. für die breiten Zeichenketten, aber das ist kein großes Problem. Das größte Problem wird die Interoperabilität mit Bibliotheken/vorhandenem Code sein, die nur Char-Arrays akzeptieren.
Und wenn es darum geht sizeof(wchar_t)
(Sie benötigen 4 Bytes, wenn Sie es richtig machen wollen), können Sie es jederzeit mit typedef
/ macro
Hacks, wenn es nötig ist.