diff --git a/tests/snippets/builtin_ascii.py b/tests/snippets/builtin_ascii.py index 7610dd5af2..2132723c6b 100644 --- a/tests/snippets/builtin_ascii.py +++ b/tests/snippets/builtin_ascii.py @@ -2,4 +2,6 @@ assert ascii('hello world') == "'hello world'" assert ascii('안녕 세상') == "'\\uc548\\ub155 \\uc138\\uc0c1'" assert ascii('안녕 RustPython') == "'\\uc548\\ub155 RustPython'" assert ascii(5) == '5' -assert ascii(chr(0x10001)) == "'\\U00010001'" \ No newline at end of file +assert ascii(chr(0x10001)) == "'\\U00010001'" +assert ascii(chr(0x9999)) == "'\\u9999'" +assert ascii(chr(0x0A)) == "'\\n'" \ No newline at end of file diff --git a/vm/src/builtins.rs b/vm/src/builtins.rs index 48f0408f1b..0ac6946a7b 100644 --- a/vm/src/builtins.rs +++ b/vm/src/builtins.rs @@ -66,7 +66,7 @@ fn builtin_ascii(obj: PyObjectRef, vm: &VirtualMachine) -> PyResult { if c.is_ascii() { ascii.push(c); } else if (c as i64) < 0x10000 { - let hex = format!("\\u{:x}", c as i64); + let hex = format!("\\u{:04x}", c as i64); ascii.push_str(&hex); } else { let hex = format!("\\U{:08x}", c as i64);