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

@@ -91,7 +91,8 @@ std::string GetAnyValueS(reflection::BaseType type, const uint8_t *data,
auto val = GetAnyFieldS(*table_field, fielddef, schema);
if (fielddef.type()->base_type() == reflection::String) {
std::string esc;
flatbuffers::EscapeString(val.c_str(), val.length(), &esc, true);
flatbuffers::EscapeString(val.c_str(), val.length(), &esc, true,
false);
val = esc;
}
s += fielddef.name()->str();