C++: Sonderzeichen lösen Problem aus?

1 Antwort

std::string dürfte immer noch auf 1-Byte-Zeichen basieren (das umzubauen würde kubikmeterweise alten Code unbrauchbar machen). Zeichen, die nicht in einen erweiterten ASCII-Satz passen, sind damit nicht darstellbar. (Außerdem hat man dann immer das Problem, wissen zu müssen, welche "Codeseite" beim encodieren verwendet wurde.)

Für Zeichen, die jenseits von ASCII #127 liegen, gibt es Unicode; und für verschiedene Codierungen von Unicode (UTF-8, UTF-16 etc.) verschiedene C++-Alternativen zu std::string.

Siehe

https://en.cppreference.com/w/cpp/filesystem/path/string

https://www.geeksforgeeks.org/char-vs-stdstring-vs-char-c/

https://www.c-plusplus.net/forum/topic/215536/von-char-1-byte-zu-utf8-2-byte/3

(beim letzten Link scheint jemand ein Problem zu haben, das deinem sehr ähnlich ist)

Woher ich das weiß:Recherche