Est u8 littéral de chaîne nécessaire en C++11

De Wikipedia:

Pour but d'améliorer le support de l'Unicode dans les compilateurs C++, la définition du type char a été modifiée pour être au moins de la taille nécessaire pour stocker les huit bits du codage UTF-8.

Je me demande exactement ce que cela signifie pour l'écriture d'applications portables. Quelle est la différence entre l'écriture de ce

const char[] str = "Test String";

ou cela?

const char[] str = u8"Test String";

Est-il une raison de ne pas utiliser ce dernier pour chaque littéral de chaîne dans votre code?

Ce qui se passe quand il y a des non-ASCII des Caractères à l'intérieur de la chaîne de Test?

stackoverflow.com/questions/9739070/char-encoding peut-être être utile
L'une des chaînes est en UTF-8, l'autre pourrait être n'importe quoi, comme EBCDIC.
Peut-être d'intérêt -- codage des questions relatives à la mienne: #1, #2, #3

OriginalL'auteur Lukas Schmelzeisen | 2012-11-18