icu_encoding_detection.h revision ddb351dbec246cf1fab5ec20d2d5520909041de1
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#ifndef BASE_I18N_ICU_ENCODING_DETECTION_H_
6#define BASE_I18N_ICU_ENCODING_DETECTION_H_
7#pragma once
8
9#include <string>
10#include <vector>
11
12namespace base {
13
14// Detect encoding of |text| and put the name of encoding (as returned by ICU)
15// in |encoding|. For ASCII texts |encoding| will be set to an empty string.
16// Returns true on success.
17bool DetectEncoding(const std::string& text, std::string* encoding);
18
19// Detect all possible encodings of |text| and put their names
20// (as returned by ICU) in |encodings|. Returns true on success.
21// Note: this function may return encodings that may fail to decode |text|,
22// the caller is responsible for handling that.
23bool DetectAllEncodings(const std::string& text,
24                        std::vector<std::string>* encodings);
25
26}  // namespace base
27
28#endif  // BASE_I18N_ICU_ENCODING_DETECTION_H_
29