C++11 und UTF-8
-
Mit C++11 wurden ja nun UTF-8 Literale eingeführt, was ja auch langsam mal Zeit war. Allerdings frage ich mich gerade, ob es dafür auch passende string Typen gibt? Ich kann keine finden. Wie macht ihr das, wenn ihr mit UTF-8 arbeitet? std::string als besseren Container nutzen und alle Operationen als freie Funktionen implementieren? Oder nutzt ihr vielleicht gleich vector<char>? Oder habt ihr euch eine eigene Klasse geschrieben?
-
std::wstring
-
Skym0sh0 schrieb:
std::wstring
ROFL

-
2.14.5 String literals
7 A string literal that begins with u8, such as u8"asdf", is a UTF-8 string literal and is initialized with the given characters as encoded in UTF-8. 8 Ordinary string literals and UTF-8 string literals are also referred to as narrow string literals. A narrow string literal has type “array of n const char”, where n is the size of the string as defined below, and has static storage duration (3.7).kann man also ganz normal std::string zum Speichern verwenden
für die Verarbeitung gibt es dann http://en.cppreference.com/w/cpp/string/multibyte
-
Für UTF-8 gibt es keinen eigenen Typ, es wird auch const char[] verwendet.
Bitte auch die Antwort dort beachten:
http://stackoverflow.com/questions/6072342/how-to-use-utf8-character-arrays-in-cMfG SideWinder
-
SideWinder schrieb:
Für UTF-8 gibt es keinen eigenen Typ, es wird auch const char[] verwendet.
Er hat doch explizit nach einem string-Typen und nicht nach einem char-Typen gefragt. So wie die Frage gestellt ist, ist dem TE das sicher klar.
Die einzig korrekte Antwort ist also: Nein, so einen extra string Typen gibt es leider nicht.
Und: Ich würde mir eine eigene Klasse dafür schreiben. (utf8string)
-
Unicodler schrieb:
Wie macht ihr das, wenn ihr mit UTF-8 arbeitet?
Nicht Standard C++ verwenden. Selbst mit C++11 ist der Unicode-Support rudimentär. Sobald du etwas mehr Funktionalität möchtest, muss man sowieso umsteigen.
Ausserdem sind die iostreams schrott, die möchte man auch nicht zwingend verwenden.
<a href= schrieb:
Boost">Almost every(!) facet has design flaws:
-
cooky451 schrieb:
Skym0sh0 schrieb:
std::wstring
ROFL

Jetzt mal ohne Spass, Kollegen.
Ich hab mich nie mit Codieren beschäftigt, ich hab letztlich keine wirkliche Ahnung, wo die Unterschiede zwischen string und wstring (bzw char und wchar_t) sind, ausser dass die w's etwas größer sind.Genauso wenig hab ich groß Ahnung von Unicode (ich weiss dass es da was gibt).
Und meine Antwort auf die Frage von OP war eher mal so ins Blaue geschossen, ich hab damit gerechnet(und darauf gehofft), dass mich jemand korrigiert...
-
Ach so, ich dachte die Antwort sei eine clevere Anspielung auf die leichte Tendenz des Standards Dinge bis hin zur völligen Nutzlosigkeit zur verallgemeinern.
-
Skym0sh0 schrieb:
cooky451 schrieb:
Skym0sh0 schrieb:
std::wstring
ROFL

Jetzt mal ohne Spass, Kollegen.
Ich hab mich nie mit Codieren beschäftigt, ich hab letztlich keine wirkliche Ahnung, wo die Unterschiede zwischen string und wstring (bzw char und wchar_t) sind, ausser dass die w's etwas größer sind.Genauso wenig hab ich groß Ahnung von Unicode (ich weiss dass es da was gibt).
Und meine Antwort auf die Frage von OP war eher mal so ins Blaue geschossen, ich hab damit gerechnet(und darauf gehofft), dass mich jemand korrigiert...
+1
cooky451 schrieb:
Ach so, ich dachte die Antwort sei eine clevere Anspielung auf die leichte Tendenz des Standards Dinge bis hin zur völligen Nutzlosigkeit zur verallgemeinern.
LOL
-
Nathan schrieb:
Skym0sh0 schrieb:
cooky451 schrieb:
Skym0sh0 schrieb:
std::wstring
ROFL

Jetzt mal ohne Spass, Kollegen.
Ich hab mich nie mit Codieren beschäftigt, ich hab letztlich keine wirkliche Ahnung, wo die Unterschiede zwischen string und wstring (bzw char und wchar_t) sind, ausser dass die w's etwas größer sind.Genauso wenig hab ich groß Ahnung von Unicode (ich weiss dass es da was gibt).
Und meine Antwort auf die Frage von OP war eher mal so ins Blaue geschossen, ich hab damit gerechnet(und darauf gehofft), dass mich jemand korrigiert...
+1
cooky451 schrieb:
Ach so, ich dachte die Antwort sei eine clevere Anspielung auf die leichte Tendenz des Standards Dinge bis hin zur völligen Nutzlosigkeit zur verallgemeinern.
LOL
+1