编码转换
来源:互联网 发布:sql注入语句登录系统 编辑:程序博客网 时间:2024/04/30 19:41
大家说torsion工具中文输入很麻烦,这段时间不忙,刚好静下心来,研究了下,只要把字符串转化从GB2312为UTF-8就可以了。
主要修改static int Sc_ScanString(int ret)这个函数就ok了
static int Sc_ScanString(int ret)
{
CMDtext[CMDleng - 1] = 0;
if(!collapseEscape(CMDtext+1))
return -1;
/*
CMDlval.str = (char *) consoleAlloc(dStrlen(CMDtext));
dStrcpy(CMDlval.str, CMDtext + 1);
*/
int n = dStrlen(CMDtext);
char tempStr[102400];
dStrcpy(tempStr, CMDtext + 1);
convertGB2312toUTF8(tempStr, tempStr, 102400);
int count = dStrlen(tempStr);
if(n > count)
{
count = n;
count++;
CMDlval.str = (char *) consoleAlloc(count);
dStrcpy(CMDlval.str, tempStr);
}
else
{
count++;
CMDlval.str = (char *) consoleAlloc(count);
dStrcpy(CMDlval.str, CMDtext + 1);
convertGB2312toUTF8(CMDlval.str, CMDlval.str, count);
}
return(ret);
}
不过要自己先写字符转换函数
void convertUTF8toGB2312(const char *unistring, char *outbuffer, int len)
{
wchar_t *buf = new wchar_t[len];
MultiByteToWideChar(CP_UTF8, 0, unistring, -1, buf, len);
WideCharToMultiByte(CP_ACP, 0, buf, -1, outbuffer, len, NULL, NULL);
delete []buf;
}
void convertGB2312toUTF8(const char *unistring, char *outbuffer, int len)
{
wchar_t *buf = new wchar_t[len ];
MultiByteToWideChar(CP_ACP, 0, unistring, -1, buf, len);
WideCharToMultiByte(CP_UTF8, 0, buf, -1, outbuffer, len, NULL, NULL);
delete []buf;
}
WCHAR *UTF8ToUnicode(const char *str)
{
int i = MultiByteToWideChar(CP_UTF8,MB_ERR_INVALID_CHARS,str,-1,NULL,0);
WCHAR *strUnicode=new WCHAR[i];
MultiByteToWideChar(CP_UTF8,MB_ERR_INVALID_CHARS,str,-1,strUnicode,i);
return strUnicode;
delete []strUnicode;
}
char *UnicodeToUTF8(const WCHAR* pText)
{
int i= WideCharToMultiByte(CP_UTF8,0,pText,-1,NULL,0,NULL,NULL); //输入缓冲区大小是宽字符数
char *strUTF8 = new char[i];
WideCharToMultiByte(CP_UTF8,0,pText,-1,strUTF8,i,NULL,NULL);
return strUTF8;
delete []strUTF8;
}
- 编码转换
- 编码转换
- 编码转换
- 编码转换
- 编码转换
- 编码转换
- 编码转换
- 编码转换
- 编码转换
- 编码转换
- 编码转换
- 编码转换
- 编码转换
- 编码转换
- 编码转换
- 转换编码
- 编码转换
- 编码转换
- 一句话概述C#4.0新特性
- 在 Visual C++ 中开发自定义的绘图控件
- Linux下使用GDB调试程序的方法
- Win32多线程程序设计基本概念
- 中国科学院数学与系统科学研究院
- 编码转换
- AfxMessageBox与MessageBox的区别
- ASP.NET设计应用程序的七大绝招
- IT常见9种职业病
- LR中的一些常用名词
- 像这样下去什么时候我才能买一个属于自己的房子?
- 用C++解析XML文档---头痛
- Window 中窗口的层次关系以及窗口的属性
- JTA、JTS各司其职,共职分布式事务