Left |
Result |
|
Right |
1 | char | |
char | | as is |
literal2 | | high-order 8 bits discarded |
literal4 | | high 3 bytes discarded |
|
2 | literal2 | |
char | | high-order 8 bits are 0 |
literal2 | | as is |
literal4 | | high 2 bytes discarded |
|
3 | integers | |
char,literal2 or literal4 |
4 | literal2 | |
integers in the range -65536 to 65535 |
5 | char | |
literal2 or literal4 in the range 0 to 255 |
6 | literal2 | |
pairs of chars are converted to literal2s |
7 | char or U16 | |
U8 | | converted to U16 |
ASCII | | as is |
literal2 | | if all values <128, convert to ASCII, otherwise as is |
U32 | | if all values <128, convert to ASCII, otherwise converted to U16 |
integers | | the range 0 to 16b10ffff converted to U16 |
an empty right argument produces an empty char result
|
8 | U8 | |
U16 | | converted to U8 |
U32 | | converted to U8 |
char | | as is |
integers | | the range 0 to 16b10ffff converted to U8 |
an empty right argument produces an empty char result
|
9 | char or U32 | |
U8 | | converted to U32 |
ASCII | | as is |
U16 | | if all values <128, convert to ASCII, otherwise converted to U32 |
literal4 | | as is, and any valid surrogate pairs are converted |
integers | | converted to literal4 |
an empty right argument produces an empty char result
|
10 | literal4 | |
char | | promoted to literal4 |
literal2 | | promoted to literal4 |
literal4 | | as is |
integers | | converted to literal4 |
each char or literal2 is promoted to literal4 character by character, no U8 or U16 encoding assumed
|