net_string_util.h revision 5c02ac1a9c1b504631c0a3d2b6e737b5d738bae1
15c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// Copyright 2014 The Chromium Authors. All rights reserved. 25c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// Use of this source code is governed by a BSD-style license that can be 35c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// found in the LICENSE file. 45c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 55c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#ifndef NET_BASE_NET_STRING_UTIL_H__ 65c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#define NET_BASE_NET_STRING_UTIL_H__ 75c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 85c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#include <string> 95c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 105c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#include "base/strings/string16.h" 115c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 125c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// String conversion functions. By default, they're implemented with ICU, but 135c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// when building with USE_ICU_ALTERNATIVES, they use platform functions instead. 145c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 155c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liunamespace net { 165c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 175c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// Converts |text| using |charset| to UTF-8, and writes it to |output|. 185c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// On failure, returns false and |output| is cleared. 195c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liubool ConvertToUtf8(const std::string& text, const char* charset, 205c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu std::string* output); 215c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 225c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// Converts |text| using |charset| to UTF-8, normalizes the result, and writes 235c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// it to |output|. On failure, returns false and |output| is cleared. 245c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liubool ConvertToUtf8AndNormalize(const std::string& text, const char* charset, 255c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu std::string* output); 265c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 275c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// Converts |text| encoded in Latin-1 to UTF-8, normalizes the result, and 285c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// writes it to |output|. On failure, returns false and |output| is cleared. 295c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liubool ConvertLatin1ToUtf8AndNormalize(const std::string& text, 305c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu std::string* output); 315c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 325c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// Converts |text| using |charset| to UTF-16, and writes it to |output|. 335c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// On failure, returns false and |output| is cleared. 345c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liubool ConvertToUTF16(const std::string& text, const char* charset, 355c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu base::string16* output); 365c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 375c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// Converts |text| encoded in Latin-1 to UTF-16, and writes it to |output|. 385c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// On failure, returns false and |output| is cleared. 395c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liubool ConvertLatin1ToUTF16(const std::string& text, base::string16* output); 405c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 415c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu} // namespace net 425c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 435c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#endif // NET_BASE_NET_STRING_UTIL_H__ 44