June 26, 2017 [Issue 17556] New: std.json encodes non-BMP characters incorrectly with JSONOptions.escapeNonAsciiChars | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=17556 Issue ID: 17556 Summary: std.json encodes non-BMP characters incorrectly with JSONOptions.escapeNonAsciiChars Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: normal Priority: P3 Component: phobos Assignee: nobody@puremagic.com Reporter: dlang-bugzilla@thecybershadow.net /////////////////// test.d /////////////////// import std.json; import std.stdio; void main() { auto v = JSONValue("\U0001D11E"); writeln(toJSON(v, false, JSONOptions.escapeNonAsciiChars)); } ////////////////////////////////////////////// Above program prints "\uD11E", which is not the correct character. Non-BMP characters should be encoded as a pair of escaped UTF-16 surrogate pairs, as per RFC 4627. See also issue 5904. -- |
Copyright © 1999-2021 by the D Language Foundation