1// 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 "xfa/fxbarcode/BC_UtilCodingConvert.h"
8
9CBC_UtilCodingConvert::CBC_UtilCodingConvert() {}
10
11CBC_UtilCodingConvert::~CBC_UtilCodingConvert() {}
12
13void CBC_UtilCodingConvert::UnicodeToLocale(const CFX_WideString& src,
14                                            CFX_ByteString& dst) {
15  dst = CFX_ByteString::FromUnicode(src);
16}
17
18void CBC_UtilCodingConvert::LocaleToUtf8(const CFX_ByteString& src,
19                                         CFX_ByteString& dst) {
20  CFX_WideString unicode = CFX_WideString::FromLocal(src.AsStringC());
21  dst = unicode.UTF8Encode();
22}
23
24void CBC_UtilCodingConvert::LocaleToUtf8(const CFX_ByteString& src,
25                                         CFX_ArrayTemplate<uint8_t>& dst) {
26  CFX_WideString unicode = CFX_WideString::FromLocal(src.AsStringC());
27  CFX_ByteString utf8 = unicode.UTF8Encode();
28  for (int32_t i = 0; i < utf8.GetLength(); i++) {
29    dst.Add(utf8[i]);
30  }
31}
32
33void CBC_UtilCodingConvert::Utf8ToLocale(const CFX_ArrayTemplate<uint8_t>& src,
34                                         CFX_ByteString& dst) {
35  CFX_ByteString utf8;
36  for (int32_t i = 0; i < src.GetSize(); i++) {
37    utf8 += src[i];
38  }
39  CFX_WideString unicode = CFX_WideString::FromUTF8(utf8.AsStringC());
40  dst = CFX_ByteString::FromUnicode(unicode);
41}
42
43void CBC_UtilCodingConvert::Utf8ToLocale(const uint8_t* src,
44                                         int32_t count,
45                                         CFX_ByteString& dst) {
46  CFX_WideString unicode =
47      CFX_WideString::FromUTF8(CFX_ByteStringC(src, count));
48  dst = CFX_ByteString::FromUnicode(unicode);
49}
50
51void CBC_UtilCodingConvert::UnicodeToUTF8(const CFX_WideString& src,
52                                          CFX_ByteString& dst) {
53  dst = src.UTF8Encode();
54}
55