1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 // 5 // This file defines utility functions for escaping strings. 6 7 #ifndef BASE_JSON_STRING_ESCAPE_H_ 8 #define BASE_JSON_STRING_ESCAPE_H_ 9 10 #include <string> 11 12 #include "base/base_export.h" 13 #include "base/strings/string16.h" 14 15 namespace base { 16 17 // Escape |str| appropriately for a JSON string literal, _appending_ the 18 // result to |dst|. This will create unicode escape sequences (\uXXXX). 19 // If |put_in_quotes| is true, the result will be surrounded in double quotes. 20 // The outputted literal, when interpreted by the browser, should result in a 21 // javascript string that is identical and the same length as the input |str|. 22 BASE_EXPORT void JsonDoubleQuote(const std::string& str, 23 bool put_in_quotes, 24 std::string* dst); 25 26 // Same as above, but always returns the result double quoted. 27 BASE_EXPORT std::string GetDoubleQuotedJson(const std::string& str); 28 29 BASE_EXPORT void JsonDoubleQuote(const string16& str, 30 bool put_in_quotes, 31 std::string* dst); 32 33 // Same as above, but always returns the result double quoted. 34 BASE_EXPORT std::string GetDoubleQuotedJson(const string16& str); 35 36 } // namespace base 37 38 #endif // BASE_JSON_STRING_ESCAPE_H_ 39