Should I use wchar_t when using UTF-8?
wchar_t
is not of much use if you want to make your code portable.
On wikipedia
The width of wchar_t is compiler-specific and can be as small as 8 bits. Consequently, programs that need to be portable across any C or C++ compiler should not use wchar_t for storing Unicode text. The wchar_t type is intended for storing compiler-defined wide characters, which may be Unicode characters in some compilers"
Further ,
Both C and C++ introduced fixed-size character types char16_t
and char32_t
in the 2011 revisions of their respective standards to provide unambiguous representation of 16-bit and 32-bit Unicode transformation formats, leaving wchar_t
implementation-defined.
Comments
-
David G almost 2 years
UTF-8 can encode in 1, 2, and up to 4 bytes. A single
char
on my system is 1 byte. Should I usewchar_t
as a precaution so that I will be able to fit any arbitrary UTF-8 encoded character?