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
CBC_UtilCodingConvert()9 CBC_UtilCodingConvert::CBC_UtilCodingConvert() {}
10
~CBC_UtilCodingConvert()11 CBC_UtilCodingConvert::~CBC_UtilCodingConvert() {}
12
UnicodeToLocale(const CFX_WideString & src,CFX_ByteString & dst)13 void CBC_UtilCodingConvert::UnicodeToLocale(const CFX_WideString& src,
14 CFX_ByteString& dst) {
15 dst = CFX_ByteString::FromUnicode(src);
16 }
17
LocaleToUtf8(const CFX_ByteString & src,CFX_ByteString & dst)18 void 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
LocaleToUtf8(const CFX_ByteString & src,CFX_ArrayTemplate<uint8_t> & dst)24 void 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
Utf8ToLocale(const CFX_ArrayTemplate<uint8_t> & src,CFX_ByteString & dst)33 void 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
Utf8ToLocale(const uint8_t * src,int32_t count,CFX_ByteString & dst)43 void 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
UnicodeToUTF8(const CFX_WideString & src,CFX_ByteString & dst)51 void CBC_UtilCodingConvert::UnicodeToUTF8(const CFX_WideString& src,
52 CFX_ByteString& dst) {
53 dst = src.UTF8Encode();
54 }
55