Skip to content

Commit 2eefb5f

Browse files
committed
Updating JSON escaping.
1 parent 4a9c73b commit 2eefb5f

2 files changed

Lines changed: 3 additions & 1 deletion

File tree

include/manacommons/escape.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ struct escape_impl<escaped_string_json<OutputIterator>>
128128
case '\r': generated += "\\r"; break;
129129
case '\t': generated += "\\t"; break;
130130
default:
131-
if (c < 0x20)
131+
if (c < 0x20 || c >= 0x7f)
132132
{
133133
generated += "\\u00";
134134
generated += hex_digits[(c >> 4) & 0x0F];

test/escape.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,8 @@ BOOST_AUTO_TEST_CASE(test_string_escape_json)
9292
check_string_escaping_json("\b", "\\b");
9393
check_string_escaping_json("\f", "\\f");
9494
check_string_escaping_json("\t", "\\t");
95+
check_string_escaping_json(std::string("\x7f", 1), "\u007F");
96+
check_string_escaping_json(std::string("\xe9", 1), "\u00E9");
9597
check_string_escaping_json("\v", "\\u000B");
9698
check_string_escaping_json("\r\n", "\\r\\n");
9799
}

0 commit comments

Comments
 (0)