Files
wren/test/language/string/unicode_escapes.wren
T
Will Speak 645296cbd8 feat: add \U style 8-hex-digit unicode escape support in string literals
Extend the compiler's string parser to handle `\U` escapes with 8 hex digits
for codepoints above U+FFFF, replacing the previous TODO comment. The
`readUnicodeEscape` helper now accepts a variable digit count (4 or 8) and
the `readString` function dispatches `\u` with length 4 and `\U` with length 8.
New test cases verify correct encoding of emoji and ancient scripts, plus
error handling for incomplete long escapes and values that fit in 4 digits.
2015-10-03 16:28:25 +00:00

25 lines
714 B
Plaintext

// One byte UTF-8 Sequences.
System.print("\u0041") // expect: A
System.print("\u007e") // expect: ~
// Two byte sequences.
System.print("\u00b6") // expect: ¶
System.print("\u00de") // expect: Þ
// Three byte sequences.
System.print("\u0950") // expect: ॐ
System.print("\u0b83") // expect: ஃ
// Capitalized hex.
System.print("\u00B6") // expect: ¶
System.print("\u00DE") // expect: Þ
// Big escapes:
var smile = "\U0001F603"
var byteSmile = "\xf0\x9f\x98\x83"
System.print(byteSmile == smile) // expect: true
System.print("<\U0001F64A>") // expect: <🙊>
System.print("<\U0001F680>") // expect: <🚀>
System.print("<\U00010318>") // expect: <𐌘>