Should I use wchar_t when using UTF-8?

10,444

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.

Share:
10,444
David G
Author by

David G

[email protected]

Updated on June 09, 2022

Comments

  • David G
    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 use wchar_t as a precaution so that I will be able to fit any arbitrary UTF-8 encoded character?