UTF-8与本地字符转换
来源:互联网 发布:淘宝围巾店铺 编辑:程序博客网 时间:2024/06/07 06:21
CodingConv.h
/** * \file CodingConv.h * \brief 编码格式转换接口定义文件 */#pragma once/** * \class CCodingConv CodingConv.h * \brief 本地编码类型与UTF8编码类型转换封装类,用于sqlite中的编码类型转换 * \date 2010-6-8 9:31 */class CCodingConv {public: /** * \brief 将本地编码类型转换为UTF8编码类型 * \param[in] strIn 本地编码类型的字符串 * \param[out] strOutUTF8MB 转换后的UTF8编码格式的字符串 * \return 转换后的字符串长度 * \attention 本地函数为strOutUTF8MB申请的内存要在外部释放 */ static size_t ConvertStringToUTF8( LPCTSTR strIn, char *& strOutUTF8MB ); /** * \brief 将UTF8编码类型转换为本地编码类型 * \param[in] strInUTF8MB UTF8编码类型的字符串 * \param[in] len strInUTF8MB字符串的长度 * \param[out] strOut 转换后的本地编码格式的字符串 * \return NONE */ static void ConvertUTF8ToString( char * strInUTF8MB, size_t len, LPTSTR & strOut );};
CodingConv.cpp
/** * \file CodingConv.cpp * \brief 编码格式转换接口实现文件 */#include "stdafx.h"#include <Windows.h>#include <tchar.h>#include "CodingConv.h"void CCodingConv::ConvertUTF8ToString( char * strInUTF8MB, size_t len, LPTSTR & strOut ){ strOut=new TCHAR[len]; strOut[0]=0;#ifdef UNICODE MultiByteToWideChar(CP_UTF8, 0, strInUTF8MB, (int)len, strOut, (int)len);#else WCHAR * wChar=new WCHAR[len]; wChar[0]=0; MultiByteToWideChar(CP_UTF8, 0, strInUTF8MB, (int)len, wChar, (int)len); WideCharToMultiByte(CP_ACP, 0, wChar, (int)len, strOut, (int)len, 0, 0); delete [] wChar;#endif}size_t CCodingConv::ConvertStringToUTF8( LPCTSTR strIn, char *& strOutUTF8MB ){ size_t len=_tcslen(strIn);#ifdef UNICODE int iRequiredSize=WideCharToMultiByte(CP_UTF8, 0, strIn, -1, 0, 0, 0, 0); strOutUTF8MB=new char[iRequiredSize]; strOutUTF8MB[0]=0; WideCharToMultiByte(CP_UTF8, 0, strIn, -1, strOutUTF8MB, iRequiredSize, 0, 0);#else WCHAR * wChar=new WCHAR[len+1]; wChar[0]=0; MultiByteToWideChar(CP_ACP, 0, strIn, (int)len+1, wChar, (int)len+1); int iRequiredSize=WideCharToMultiByte(CP_UTF8, 0, wChar, (int)len+1, 0, 0, 0, 0); strOutUTF8MB=new char[iRequiredSize]; strOutUTF8MB[0]=0; WideCharToMultiByte(CP_UTF8, 0, wChar, (int)len+1, strOutUTF8MB, iRequiredSize, 0, 0); delete [] wChar;#endif return iRequiredSize;}
阅读全文
0 0
- UTF-8与本地字符转换
- utf-8字符转换
- ASP字符转换:UTF-8与GB2312互转
- 字符转换成UTF-8
- UTF-8与Unicode字符的相互转换 与 16进制Unicode转换汉字 重用代码
- UTF-8与Unicode字符的相互转换 与 16进制Unicode转换汉字
- gbk 与 UTF-8 转换
- Unicode与UTF-8转换
- Unicode与UTF-8转换
- unicode与utf-8转换
- 字符与GBXX,UCS-2,utf-8编码的相互转换
- java GBK字符转换成为UTF-8编码字符
- 【C++】UTF-8字符和GB2312字符相互转换函数
- C++ 字符集转换 字符类型转换 utf-8 gb2312 url
- 中文字符后台转换。ISO8859-1转换成UTF-8
- 字符编码GBK与UTF-8
- 字符编码中utf-8与gb2312
- UNICODE(UTF-16)与UTF-8编码的相互转换
- WEB直接打印实现思路
- 调整物体是否为 Event System Raycast 投射的目标
- 数据库建表时时间字段类型设置
- [TensorFlow] windows 安装TensorFlow
- AI神经网络激活函数sigmoid及matlab的sigmf
- UTF-8与本地字符转换
- html5+css+jquery完成时间显示
- pandas学习之concat合并及读写CSV文件
- 全选 单选和反选的实现
- studio到工程的时候注意事项
- Ruby on rails初体验(一)
- Matlab绘图高级部分
- cookie,session,servlet的生命周期
- redis jedis基本操作命令