1d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Copyright 2014 PDFium Authors. All rights reserved. 2d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Use of this source code is governed by a BSD-style license that can be 3d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// found in the LICENSE file. 4d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 5d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 6d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 7d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#include "fxbarcode/BC_UtilCodingConvert.h" 8d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 9d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. MoltmannCBC_UtilCodingConvert::CBC_UtilCodingConvert() {} 10d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 11d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. MoltmannCBC_UtilCodingConvert::~CBC_UtilCodingConvert() {} 12d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 13d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmannvoid CBC_UtilCodingConvert::UnicodeToLocale(const WideString& src, 14d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann ByteString& dst) { 15d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann dst = ByteString::FromUnicode(src); 16d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann} 17d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 18d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmannvoid CBC_UtilCodingConvert::LocaleToUtf8(const ByteString& src, 19d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann ByteString& dst) { 20d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann WideString unicode = WideString::FromLocal(src.AsStringView()); 21d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann dst = unicode.UTF8Encode(); 22d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann} 23d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 24d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmannvoid CBC_UtilCodingConvert::LocaleToUtf8(const ByteString& src, 25d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann std::vector<uint8_t>& dst) { 26d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann WideString unicode = WideString::FromLocal(src.AsStringView()); 27d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann ByteString utf8 = unicode.UTF8Encode(); 28d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann dst = std::vector<uint8_t>(utf8.begin(), utf8.end()); 29d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann} 30d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 31d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmannvoid CBC_UtilCodingConvert::Utf8ToLocale(const std::vector<uint8_t>& src, 32d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann ByteString& dst) { 33d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann ByteString utf8; 34d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann for (uint8_t value : src) 35d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann utf8 += value; 36d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 37d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann WideString unicode = WideString::FromUTF8(utf8.AsStringView()); 38d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann dst = ByteString::FromUnicode(unicode); 39d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann} 40d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 41d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmannvoid CBC_UtilCodingConvert::Utf8ToLocale(const uint8_t* src, 42d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann int32_t count, 43d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann ByteString& dst) { 44d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann WideString unicode = WideString::FromUTF8(ByteStringView(src, count)); 45d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann dst = ByteString::FromUnicode(unicode); 46d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann} 47d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 48d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmannvoid CBC_UtilCodingConvert::UnicodeToUTF8(const WideString& src, 49d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann ByteString& dst) { 50d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann dst = src.UTF8Encode(); 51d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann} 52