Symbian中的一些编码转换API

本文介绍了Symbian系统中几种用于编码格式转换的API,包括ClassEscapeUtils、CnvUtfConverter和CCnvCharacterSetConverter等,这些API可以实现Unicode与UTF-8之间的转换,以及从GBK到Unicode的转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:在Symbian中的中文字都是用unicode编码来完成的 ,所以通过功能函数转换为uncode或者保存为unicode文件就可以解决中文显示的问题了。

 

以下是Symbian中提供的几个关于编码格式转换的API接口和粗略说明 ( 以功能逐渐强大为序 ):

 

1) Class EscapeUtils

Description

Provides an API to allow data to be escape encoded and decoded. Also provide an API for converting a UNICODE data (16-bit descriptor) into UTF8 data (8-bit descriptor) and vice-verse.

注:EscapeUtils工具类中也包含了将URL进行编码的简单接口(不好用)。

 

 Location: EscapeUtils.h
Link against: inetprotutil.lib

 

 

2) class CnvUtfConverter

Description

Converts text between Unicode (UCS-2) and the two Unicode transformation formats UTF-7 and UTF-8. There are no functions to convert directly between UTF-7 and UTF-8.

 

Objects of this class do not need to be created because all the member functions are static. The four functions are passed text in the second argument and output the resulting text in the first argument. Sixteen-bit descriptors are used to hold text encoded in UCS-2 (i.e. normal 16 bit Unicode), and eight-bit descriptors are used to hold text encoded in either of the transformation formats.

 

The conversion functions return the number of characters which were not converted because the output descriptor was not long enough to hold all of the converted text. This allows users of this class to perform partial conversions on an input descriptor, handling the case when the input descriptor is truncated mid way through a multi-byte character. The caller does not have to guess how big to make the output descriptor for a given input descriptor- they can simply do the conversion in a loop using a small output descriptor. The ability to handle truncated descriptors is particularly useful if the caller is receiving information in chunks from an external source.

 

Location: UTF.H
Link against: charconv.lib

 

 

3) Class CCnvCharacterSetConverter

 

示例代码:


     
TText * testtext = (TText * ) " 测试文字,test " ;
TPtr ptr
= GBKToUnicodeL( testtext ); // then, the ptr can be display on screen.

// ---------------------------------------

HBufC16
* GBKToUnicodeL(TText * aText)
{
// CcnvCharacterSetConverter API来转换
CCnvCharacterSetConverter * converter = CCnvCharacterSetConverter::NewLC();

// 判断当前系统支持的字符集里面是否包括GBK.
// 方法1.START.
if ( converter -> PrepareToConvertToOrFromL(KCharacterSetIdentifierGbk, myRFs)
!= CCnvCharacterSetConverter::EAvailable )
User::Leave(KErrNotSupported);
// 方法1.END.

// 方法2.START.
/*
CArrayFixFlat<SCharacterSet>* chSetArray = NULL;
chSetArray = CreateArrayOfCharacterSetsAvailableLC(myRFs);
... // 在chSetArray中寻找当前系统支持的字符集里面是否包括GBK
CleanupStack::PopAndDestroy(chSetArray);
//
*/
// 方法2.END.

TText8
* str = (TText8 * )aText;
TInt state
= CCnvCharacterSetConverter::KStateDefault;
TPtrC8 source( str );
HBufC
* infoText = HBufC::NewL( source.Length() * 2 );
TPtr ptr
= infoText -> Des();
if ( converter -> ConvertToUnicode(ptr, source, state)
== CCnvCharacterSetConverter::EErrorIllFormedInput )
User::Leave(KErrArgument);
// Leave if error in conversion.

CleanupStack::PopAndDestroy(converter);
// clean for converter

return infoText; // 经过转换,infoText中的中文字符就可以在设备上显示了。
}

 

posted on 2010-08-17 21:05 cheney23reg 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/cheney23reg/archive/2010/08/17/1801777.html

内容概要:本文档详细介绍了一个基于MATLAB实现的跨尺度注意力机制(CSA)结合Transformer编码器的多变量时间序列预测项目。项目旨在精准捕捉多尺度时间序列特征,提升多变量时间序列的预测性能,降低模型计算复杂度与训练时间,增强模型的解释性和可视化能力。通过跨尺度注意力机制,模型可以同时捕获局部细节和全局趋势,显著提升预测精度和泛化能力。文档还探讨了项目面临的挑战,如多尺度特征融合、多变量复杂依赖关系、计算资源瓶颈等问题,并提出了相应的解决方案。此外,项目模型架构包括跨尺度注意力机制模块、Transformer编码器层和输出预测层,文档最后提供了部分MATLAB代码示例。 适合人群:具备一定编程基础,尤其是熟悉MATLAB和深度学习的科研人员、工程师和研究生。 使用场景及目标:①需要处理多变量、多尺度时间序列数据的研究和应用场景,如金融市场分析、气象预测、工业设备监控、交通流量预测等;②希望深入了解跨尺度注意力机制和Transformer编码器在时间序列预测中的应用;③希望通过MATLAB实现高效的多变量时间序列预测模型,提升预测精度和模型解释性。 其他说明:此项目不仅提供了一种新的技术路径来处理复杂的时间序列数据,还推动了多领域多变量时间序列应用的创新。文档中的代码示例和详细的模型描述有助于读者快速理解和复现该项目,促进学术和技术交流。建议读者在实践中结合自己的数据集进行调试和优化,以达到最佳的预测效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值