Changed the escaping method.

This commit is contained in:
Seth Hall 2012-06-15 22:19:51 -04:00
parent ca5eb5382a
commit 8334dceadb

View file

@ -122,9 +122,13 @@ bool ElasticSearch::AddFieldValueToBuffer(Value* val, const Field* field)
// HTML entity encode special characters. // HTML entity encode special characters.
if ( c < 32 || c > 126 || c == '\n' || c == '"' || c == '\'' || c == '\\' || c == '&' ) if ( c < 32 || c > 126 || c == '\n' || c == '"' || c == '\'' || c == '\\' || c == '&' )
{ {
buffer.AddRaw("&#", 2); static const char hex_chars[] = "0123456789abcdef";
buffer.Add((uint8_t) c); buffer.AddRaw("\\u00", 4);
buffer.AddRaw(";", 1); buffer.AddRaw(&hex_chars[(c & 0xf0) >> 4], 1);
buffer.AddRaw(&hex_chars[c & 0x0f], 1);
//buffer.AddRaw("&#//", 2);
//buffer.Add((uint8_t) c);
//buffer.AddRaw(";", 1);
} }
else else
buffer.AddRaw(&c, 1); buffer.AddRaw(&c, 1);