描述符和字符串之间的相互转换(支持中文)
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;
}
/**
* 描述符转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;
}
相关文章推荐
- JavaScript中扩展字符串与Date对象之间的转换,支持大多数日期格式的字符串(包括中文)
- JavaScript中扩展字符串与Date对象之间的转换,支持大多数日期格式的字符串(包括中文)
- JavaScript中扩展字符串与Date对象之间的转换,支持大多数日期格式的字符串(包括中文)
- FastJson对于JSON格式字符串、JSON对象及JavaBean之间的相互转换
- java 中基本类型和字符串之间的相互转换
- Java字节、十进制、十六进制、字符串之间的相互转换
- JSON 字符串和对象之间的相互转换
- 十六进制字符串 与 所有字符(中文)之间的相互转化
- json字符串和json对象之间的相互转换
- 解析JSON对象与字符串之间的相互转换
- ip地址在数字与字符串之间的相互转换
- iOS 中文与UTF8编码之间的相互转换
- XML格式的字符串和DataSet之间的相互转换
- Java对象和文件,字符串之间的相互转换方法
- 字符串和date之间的相互转换方法
- JSON对象和字符串之间的相互转换
- time_t 与字符串之间的相互转换
- python中文和unicode字符串之间的互相转换
- 字符串string与char*之间的相互转换
- 使用FastJson在JSON字符串、JSON对象及JavaBean、Map之间的相互转换