易截截图软件、单文件、免安装、纯绿色、仅160KB

php函数中不知道怎么在C中调用? html实体与网页编码

mb_convert_encoding ("你好", "HTML-ENTITIES", "gb2312");    //输出:你好
mb_convert_encoding ("你好", "gb2312", "HTML-ENTITIES");    //输出:你好

上面是php函数,在c/c++中怎么实现这样编码?
20320和22909分别是“你”“好”这2个字的unicode码值。
所以这么做即可:
C/C++ code:

char* ConvertGBKToEncodeStr( const char* strGBK )
{

int len=MultiByteToWideChar(936, 0, strGBK, -1, NULL,0);
int i;
WCHAR * wszUCD = new WCHAR[len+1];
memset(wszUtf8, 0, len * 2 + 2);
MultiByteToWideChar(936, 0, strGBK, -1, wszUCD, len);
char *strEncode = new char[len*8+1];
for (i=0;i<wcslen(wszUCD); i++)
{
sprintf(strEncode+strlen(strEncode), "&#%d;", wczUCD[i]);
}
delete[] wszUCD;
return strEncode;


这个是把"你好" 转为&#20320;&#22909;
反向更简单,直接提取&#和;之间的数字,赋给wchar_t数组即可。

用iconv

php函数的源码,都是纯C的,可以参考

#include <iomanip>
#include <iostream>
#include <string.h>
#include <iconv.h>
#include <locale.h>
#include <stdlib.h>
//#include <easycics>

#define HG_LA


相关问答:

两个C文件的问题

以前在VC里面建一个工程,都只用一个 .c 文件,昨天在一个工程里用了两个 .c文件了,遇到问题了,请大家指点。比如:
File1.c Fil ......

C、C++、VC++ 精品电子书发布啦!

内容涉及:C、C++、STL、VC++、MFC、COM、ATL、Windows网络编程、数据库编程、Windows驱动编程、软件工程、Windows操作系统编程,等等方面。

下载地址:http://www.cctry.com/forumdisplay.php?fid=46

......

求解ANSI/ISO C中的一句话

ANSI/ISO C 标准这样描述:

在上一个和下一个序列点之间, 一个对象所保存的值至多只能被表

达式的计算修改一次。而且前一个值只能用于决定将要保存的值。

实在不理解这句话,请大家一起说说?? ......

C、C++、VC++ 精品电子书发布啦!

内容涉及:C、C++、STL、VC++、MFC、COM、ATL、Windows网络编程、数据库编程、Windows驱动编程、软件工程、Windows操作系统编程,等等方面。

下载地址:http://www.cctry.com/forumdisplay.php?fid=46

......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号