1 Star 0 Fork 1

cpp_workspace/poco

forked from sulayman_tien/poco 
加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
Transcoder.cpp 1.45 KB
一键复制 编辑 原始数据 按行查看 历史
Aleksandar Fabijanic 提交于 2022-07-09 00:28 +08:00 . Release 1.12.0 (#3674)
//
// Transcoder.cpp
//
// Library: Data
// Package: DataCore
// Module: Transcoder
//
// Copyright (c) 2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#include "Poco/Data/Transcoder.h"
namespace Poco {
namespace Data {
Transcoder::Transcoder(Poco::TextEncoding::Ptr pFromEncoding,
Poco::TextEncoding::Ptr pToEncoding):
_pFromEncoding(pFromEncoding),
_pToEncoding(pToEncoding),
_pConverter(new Poco::TextConverter(*_pFromEncoding, *_pToEncoding)),
_pReverseConverter(new Poco::TextConverter(*_pToEncoding, *_pFromEncoding))
{
}
Transcoder::~Transcoder()
{
}
Transcoder::Ptr Transcoder::create(Poco::TextEncoding::Ptr pFromEncoding,
Poco::TextEncoding::Ptr pToEncoding)
{
Ptr pTranscoder;
if (!pFromEncoding && !pToEncoding)
return pTranscoder;
if (!pFromEncoding) pFromEncoding = Poco::TextEncoding::find("UTF-8");
if (!pToEncoding) pToEncoding = Poco::TextEncoding::find("UTF-8");
if (pToEncoding->isA(pFromEncoding->canonicalName()))
return pTranscoder;
pTranscoder.reset(new Transcoder(pFromEncoding, pToEncoding));
return pTranscoder;
}
void Transcoder::transcode(const std::string& from, std::string& to)
{
if (_pConverter)
{
to.clear();
_pConverter->convert(from, to);
}
}
void Transcoder::reverseTranscode(const std::string& from, std::string& to)
{
if (_pConverter)
{
to.clear();
_pReverseConverter->convert(from, to);
}
}
} } // namespace Poco::Data
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/cpp_workspace/poco.git
git@gitee.com:cpp_workspace/poco.git
cpp_workspace
poco
poco
master

搜索帮助