Bo Xu | fdc00a7 | 2014-10-28 23:03:33 -0700 | [diff] [blame] | 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 "barcode.h"
|
Bo Xu | a902979 | 2015-01-09 17:27:21 -0800 | [diff] [blame] | 8 | #include "BC_UtilCodingConvert.h"
|
Nico Weber | 9d8ec5a | 2015-08-04 13:00:21 -0700 | [diff] [blame] | 9 | CBC_UtilCodingConvert::CBC_UtilCodingConvert() {}
|
| 10 | CBC_UtilCodingConvert::~CBC_UtilCodingConvert() {}
|
| 11 | void CBC_UtilCodingConvert::UnicodeToLocale(const CFX_WideString& src,
|
| 12 | CFX_ByteString& dst) {
|
| 13 | dst.ConvertFrom(src);
|
Bo Xu | fdc00a7 | 2014-10-28 23:03:33 -0700 | [diff] [blame] | 14 | }
|
Nico Weber | 9d8ec5a | 2015-08-04 13:00:21 -0700 | [diff] [blame] | 15 | void 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 Xu | fdc00a7 | 2014-10-28 23:03:33 -0700 | [diff] [blame] | 19 | }
|
Nico Weber | 9d8ec5a | 2015-08-04 13:00:21 -0700 | [diff] [blame] | 20 | void 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 Xu | fdc00a7 | 2014-10-28 23:03:33 -0700 | [diff] [blame] | 27 | }
|
Nico Weber | 9d8ec5a | 2015-08-04 13:00:21 -0700 | [diff] [blame] | 28 | void 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 Xu | fdc00a7 | 2014-10-28 23:03:33 -0700 | [diff] [blame] | 36 | }
|
Nico Weber | 9d8ec5a | 2015-08-04 13:00:21 -0700 | [diff] [blame] | 37 | void 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 Xu | fdc00a7 | 2014-10-28 23:03:33 -0700 | [diff] [blame] | 42 | }
|
Nico Weber | 9d8ec5a | 2015-08-04 13:00:21 -0700 | [diff] [blame] | 43 | void CBC_UtilCodingConvert::UnicodeToUTF8(const CFX_WideString& src,
|
| 44 | CFX_ByteString& dst) {
|
| 45 | dst = src.UTF8Encode();
|
Bo Xu | fdc00a7 | 2014-10-28 23:03:33 -0700 | [diff] [blame] | 46 | }
|