您的位置:首页 > 其它

描述符和字符串之间的相互转换(支持中文)

2010-08-15 15:17 253 查看
#include "utf.h"

/**
* 描述符转char*
* @param[in] aDescriptor 被转换的描述符
* @return 转换结果
*/
const char* descriptorToStringL(const TDesC& aDescriptor)
{
TInt length = aDescriptor.Length();
HBufC8* buffer = HBufC8::NewLC(length*4);
TPtr8 ptr = buffer->Des();
// buffer->Des().Copy(aDescriptor);
CnvUtfConverter::ConvertFromUnicodeToUtf8(ptr,aDescriptor);
char* str = new(ELeave) char[ptr.Length() + 1];
Mem::Copy(str, buffer->Ptr(), ptr.Length());
str[ptr.Length()] = '/0';
CleanupStack::PopAndDestroy(buffer);
return str;
}
/**
* char*转描述符
* @param[in] aString 被转换的字符串
* @return 转换结果
*/
HBufC* stringToDescriptorL(const char* aString)
{
TPtrC8 ptr(reinterpret_cast<const TUint8*>(aString));
HBufC* buffer = HBufC::NewL(ptr.Length());
TPtr16 ptr16 = buffer->Des();
CnvUtfConverter::ConvertToUnicodeFromUtf8(ptr16,ptr);
return buffer;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: