Output JSON strings as natural UTF-8 text without escapes (#4710)

* Added support for the non-escaped print of utf-8 string.

* EscapeString: the first invalid symbol resets print_natural_utf8 flag to false.

* Move the test to ParseAndGenerateTextTest. Fixes.

* Removed dependence between `natural_utf8` and `allow_non_utf8` flags.
This commit is contained in:
Vladimir Glavnyy
2018-05-04 02:10:45 +07:00
committed by Wouter van Oortmerssen
parent 85faa46fb3
commit 12c4c2238c
9 changed files with 55 additions and 16 deletions

View File

@@ -119,7 +119,8 @@ bool Print<const void *>(const void *val, Type type, int indent,
break;
case BASE_TYPE_STRING: {
auto s = reinterpret_cast<const String *>(val);
if (!EscapeString(s->c_str(), s->Length(), _text, opts.allow_non_utf8)) {
if (!EscapeString(s->c_str(), s->Length(), _text, opts.allow_non_utf8,
opts.natural_utf8)) {
return false;
}
break;