The encoding of "Test String"
is the implementation-defined system encoding (the narrow, possibly multibyte one).
The encoding of u8"Test String"
is always UTF-8.
The examples aren't terribly telling. If you included some Unicode literals (such as U0010FFFF
) into the string, then you would always get those (encoded as UTF-8), but whether they could be expressed in the system-encoded string, and if yes what their value would be, is implementation-defined.
If it helps, imagine you're authoring the source code on an EBCDIC machine. Then the literal "Test String" is always EBCDIC-encoded in the source file itself, but the u8
-initialized array contains UTF-8 encoded values, whereas the first array contains EBCDIC-encoded values.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…