网络上面有提到GBK向UTF8转换的实现方式,但是尝试之后不大准确。
如下是自己根据GBK和UTF8的存储格式,实现GBK向UTF8转化。
BYTE aGBK[3] = {0x00, 0x00, 0x00};
int by1, by2, by3, iValue, iSub = 1, iLen = 0, iCount = 0;
wchar_t aUnicode[2];
BYTE *pString = NULL;
iLen = sStr.Length();//sStr为函数输入参数,AnsiString
pString = new BYTE [iLen * 3];
while(iSub <= iLen)
{
if(0x80 > (iValue = (sStr[iSub] & 0xFF)))
{
pString[iCount++] = iValue;
}
else
{
aGBK[0] = (sStr[iSub++] & 0xFF);
aGBK[1] = (sStr[iSub] & 0xFF);
MultiByteToWideChar(CP_ACP, 0, aGBK, 3, aUnicode, 2);
by1 = 0xE0;
by2 = 0x80;
by3 = 0x80;
iValue = aUnicode[0];
by3 |= (iValue & 0x0000003F);
by2 |= ((iValue >> 6) & 0x0000003F);
by1 |= ((iValue >> 12) & 0x0000000F);
pString[iCount++] = by1;
pString[iCount++] = by2;
pString[iCount++] = by3;
}
iSub++;
}
2010_10_18_16_59
分享到:
相关推荐
VC++ 中进行简体中文(GB2312)向繁体(BIG5)转换的程序。
6.0.0 UTF-8 Release 20101028 二、安装步骤 ============ 1. 将EasyJspRun6.0下载并上传到Linux主机; 2. 以root身份登录主机,执行tar xzvf EasyJspRun6.0.tar.gz 解包; 3. 进入EasyJspRun6.0目录,并执行....
该工具支持utf-8, gbk,gb2312等不同格式的文本,可以在线对比html, php, css, asp, js等代码,这对于程序员来说是非常方便! 比起同类软件Beyond compare、DiffMerge、WinMerge等可能功能不够强大,但这个在线工具...
帝国CMS 6.0一键转帖功能插件V1.0 使用方法: 1.上传 copyto.js copyto.php 到根目录 2.内容页适当位置加入HTML.TXT中的代码 3.重新生成内容页
默认输入编码方式为GBK,默认输出编码方式为UTF-16BE; 该类别提供两个函数用来修改输入和输出编码方式: 修改输入编码方式 boolean SetGetEncoding(string $GetEncoding) 修改输出编码方式 boolean ...
并将config.inc.php中的$tablepre做相应修改 <br> D4正式版中config.inc.php新增加了一个变量$charset,请根据你所使用的语言来设置,目前只有三种可设置gbk、big5和utf-8 如果你是简体则设置为gbk、繁体则...
概要 Go 通用和庞大的实用功能可帮助您快速轻松地创建您的 Go 程序。...gbkStrRes, _ := huge.Utf8ToGbk(utf8Str) fmt.Println(gbkStrRes) // [196 227 186 195] 网 一些有用的功能可用于处理网络。 例如,您
<p><fontface> DreamArticleVersion3.0 (文章管理程序) 版本:DreamArticleVersion3.0 </font></p> <p><fontface> 版权所有:iDreamSoft.CN 枯木QQ:471334865</font></p> <p><fontface> ...
比如你用Zend Studio或Editplus写程序时,用的是gbk编码,如果数据需要入数据库,而数据库的编码为utf8时,这时就要把数据进行编码转换,不然进到数据库就会变成乱码。mb_convert_encoding的用法见官方:...
PB新大陆星POS扫码支付源码,调用C#动态库,简单实现接口,采用POWERBUILDER9.0开发 string ls_url string ls_data string ls_dd string ls_zfqd //【交易类型--传入平台用】 if rb_1.checked = true then ls_zfqd ...
这个程序里我们实现了两类窗口打开的方式,一个是自身消失而 后打开另一个窗口,一个是打开另一个窗口而自身不消失。可以看到他们实现的 方法是不同的。 三、Qt Creator 登录对话框(原创) 实现功能: 在弹出对话框...
比如你用Zend Studio或Editplus写程序时,用的是gbk编码,如果数据需要入数据库,而数据库的编码为utf8时,这时就要把数据进行编码转换,不然进到数据库就会变成乱码。 mb_convert_encoding的用法见官方: ...
QTextCodec *codec = QTextCodec::codecForName("UTF-8"); #endif QTextCodec::setCodecForLocale(codec); QTextCodec::setCodecForCStrings(codec); QTextCodec::setCodecForTr(codec); #else QTextCodec *...
//数据库字符集 可选 'gbk', 'big5', 'utf-8' define('ADLEYLIU_ROOT',dirname(__FILE__)); 程序绝对目录 define('ADLEYLIU_UPLOADPATH', 'upload_files'); //上传文件目录 $_SGLOBAL['yl_dbname'] 数据库连接 $to...
//数据库字符集 可选 'gbk', 'big5', 'utf-8' define('ADLEYLIU_ROOT',dirname(__FILE__)); 程序绝对目录 define('ADLEYLIU_UPLOADPATH', 'upload_files'); //上传文件目录 $_SGLOBAL['yl_dbname'] 数据库连接 $to...
6.0.0 UTF-8 Release 20101028 二、安装步骤 ============ 1. 将EasyJspRun6.0下载并上传到Linux主机; 2. 以root身份登录主机,执行tar xzvf EasyJspRun6.0.tar.gz 解包; 3. 进入EasyJspRun6.0目录,并执行....
1、FROMUSER和TOUSER,使用它们实现将数据从一个SCHEMA中导入到另外一个SCHEMA中。例如:假设我们做exp时导出的为test的对象,现在我们想把对象导入用户: imp userid=test1/test1 file=expdat.dmp fromuser=test1 to...
先说下:所谓的大文件并不是压缩文件有多大,几十兆的文件而是解压后几百兆。其中就遇到解压不成功的情况.、读小文件时成功,大文件... # data = data.decode('gbk').encode('utf-8') data = data.decode('gbk', 'igno
* HexiangMailServiceImpl 邮件接收发送接口实现类 * * @author 380595305@qq.com * Date 2010-05-11 * @version 1.0 */ public class HexiangMailServiceImpl implements HexiangMailService { /** ...