blob: f0f497a07bd26187b08f3b4766f24e235a134da0 [file] [log] [blame]
Dan Sinclair1770c022016-03-14 14:14:16 -04001// 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
Dan Sinclaire7786682017-03-29 15:18:41 -04007#include "fxbarcode/BC_UtilCodingConvert.h"
Dan Sinclair1770c022016-03-14 14:14:16 -04008
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) {
tsepez4c3debb2016-04-08 12:20:38 -070020 CFX_WideString unicode = CFX_WideString::FromLocal(src.AsStringC());
Dan Sinclair1770c022016-03-14 14:14:16 -040021 dst = unicode.UTF8Encode();
22}
23
24void CBC_UtilCodingConvert::LocaleToUtf8(const CFX_ByteString& src,
Tom Sepez8b6186f2017-03-28 12:06:45 -070025 std::vector<uint8_t>& dst) {
tsepez4c3debb2016-04-08 12:20:38 -070026 CFX_WideString unicode = CFX_WideString::FromLocal(src.AsStringC());
Dan Sinclair1770c022016-03-14 14:14:16 -040027 CFX_ByteString utf8 = unicode.UTF8Encode();
Tom Sepez3c3e2712017-04-17 15:38:19 -070028 dst = std::vector<uint8_t>(utf8.begin(), utf8.end());
Dan Sinclair1770c022016-03-14 14:14:16 -040029}
30
Tom Sepez8b6186f2017-03-28 12:06:45 -070031void CBC_UtilCodingConvert::Utf8ToLocale(const std::vector<uint8_t>& src,
Dan Sinclair1770c022016-03-14 14:14:16 -040032 CFX_ByteString& dst) {
33 CFX_ByteString utf8;
Tom Sepez8b6186f2017-03-28 12:06:45 -070034 for (uint8_t value : src)
35 utf8 += value;
36
tsepez4c3debb2016-04-08 12:20:38 -070037 CFX_WideString unicode = CFX_WideString::FromUTF8(utf8.AsStringC());
Dan Sinclair1770c022016-03-14 14:14:16 -040038 dst = CFX_ByteString::FromUnicode(unicode);
39}
40
41void CBC_UtilCodingConvert::Utf8ToLocale(const uint8_t* src,
42 int32_t count,
43 CFX_ByteString& dst) {
tsepez6fe7d212016-04-06 10:51:14 -070044 CFX_WideString unicode =
45 CFX_WideString::FromUTF8(CFX_ByteStringC(src, count));
Dan Sinclair1770c022016-03-14 14:14:16 -040046 dst = CFX_ByteString::FromUnicode(unicode);
47}
48
49void CBC_UtilCodingConvert::UnicodeToUTF8(const CFX_WideString& src,
50 CFX_ByteString& dst) {
51 dst = src.UTF8Encode();
52}