ワイド文字
D言語では、charと別に、次の2つの文字型が用意されている。
ワイド文字の問題は、前述のように型のサイズや符号化形式が規定されておらず、プラットフォームおよび処理系依存であることである。Unicodeが普及するにつれて、移植性の問題が表面化してきた。
2011年に改訂された C/C++ の標準規格、C11 と C++11 では、新たに2つの文字型 char16_t と char32_t が導入された。これらはそれぞれ UTF-16 と UTF-32 を内部表現とする。u'c' や U'c' あるいは u"str" や U"str" のように小文字の u あるいは大文字の U を前置することで、それぞれ char16_t と char32_t の文字定数・文字列リテラルを表現する。また、u8 を前置することで UTF-8 の文字列リテラルを表現するが、char8_t 型は存在せず、従来の char 型で代用する。