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;
这个是把"你好" 转为你好
反向更简单,直接提取&#和;之间的数字,赋给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写的DLL文件C、PB能调用VB不能调用?
VB里为什么有的DLL直接通过引用可以使用?有的需要通过declare申明外部函数?这些DLL有什么差别?
1、为什么PB能通过DECLARE声明而VB不行?
2、如果这个dll中的 ......
'\108'作为字符常量对不对?
转义字符'\ddd'表示3位8进制所代表的字符。 但是108不是正确的8进制表示方法,因此应该是错误的。
但是char a='\108'; 为什么编译不出错呢?
\108 没超过 ......
//C 接口
extern "C"
{
TESSDLL_API int __cdecl GetTessText(const char *imagefile, char *text);
}
//我在C#中声明
//调用C DLL 中的函数
[DllImport("OCRapi.dll&quo ......
请问用C或C++如何编写求解3D魔方的程序,该从何开始?
谢谢各位,帮忙提点建议吧。
http://www.mofang.net/code/176/182/6581.html
我只能突破60秒!唉。
我刚过40秒
google的android中有个OpenGL ES + ......