blob: 0e4d448e4b64b8b31e54ddaceb6d7717e42d8022 [file] [log] [blame]
Bo Xufdc00a72014-10-28 23:03:33 -07001// Copyright 2014 PDFium 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// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6
7#include "barcode.h"
Bo Xua9029792015-01-09 17:27:21 -08008#include "BC_UtilCodingConvert.h"
Nico Weber9d8ec5a2015-08-04 13:00:21 -07009CBC_UtilCodingConvert::CBC_UtilCodingConvert() {}
10CBC_UtilCodingConvert::~CBC_UtilCodingConvert() {}
11void CBC_UtilCodingConvert::UnicodeToLocale(const CFX_WideString& src,
12 CFX_ByteString& dst) {
13 dst.ConvertFrom(src);
Bo Xufdc00a72014-10-28 23:03:33 -070014}
Nico Weber9d8ec5a2015-08-04 13:00:21 -070015void CBC_UtilCodingConvert::LocaleToUtf8(const CFX_ByteString& src,
16 CFX_ByteString& dst) {
17 CFX_WideString unicode = CFX_WideString::FromLocal(src, src.GetLength());
18 dst = unicode.UTF8Encode();
Bo Xufdc00a72014-10-28 23:03:33 -070019}
Nico Weber9d8ec5a2015-08-04 13:00:21 -070020void CBC_UtilCodingConvert::LocaleToUtf8(const CFX_ByteString& src,
21 CFX_ByteArray& dst) {
22 CFX_WideString unicode = CFX_WideString::FromLocal(src, src.GetLength());
23 CFX_ByteString utf8 = unicode.UTF8Encode();
24 for (int32_t i = 0; i < utf8.GetLength(); i++) {
25 dst.Add(utf8[i]);
26 }
Bo Xufdc00a72014-10-28 23:03:33 -070027}
Nico Weber9d8ec5a2015-08-04 13:00:21 -070028void CBC_UtilCodingConvert::Utf8ToLocale(const CFX_ByteArray& src,
29 CFX_ByteString& dst) {
30 CFX_ByteString utf8;
31 for (int32_t i = 0; i < src.GetSize(); i++) {
32 utf8 += src[i];
33 }
34 CFX_WideString unicode = CFX_WideString::FromUTF8(utf8, utf8.GetLength());
35 dst.ConvertFrom(unicode);
Bo Xufdc00a72014-10-28 23:03:33 -070036}
Nico Weber9d8ec5a2015-08-04 13:00:21 -070037void CBC_UtilCodingConvert::Utf8ToLocale(const uint8_t* src,
38 int32_t count,
39 CFX_ByteString& dst) {
40 CFX_WideString unicode = CFX_WideString::FromUTF8((const char*)src, count);
41 dst.ConvertFrom(unicode);
Bo Xufdc00a72014-10-28 23:03:33 -070042}
Nico Weber9d8ec5a2015-08-04 13:00:21 -070043void CBC_UtilCodingConvert::UnicodeToUTF8(const CFX_WideString& src,
44 CFX_ByteString& dst) {
45 dst = src.UTF8Encode();
Bo Xufdc00a72014-10-28 23:03:33 -070046}