#include <string>
#include <vector> inline BYTE toHex(const BYTE x)
{
return x>9?x+55:x+48;
} std::string WC2UT(const wchar_t* buf)
{
int len=WideCharToMultiByte(CP_UTF8,0,buf,-1,NULL,0,NULL,NULL);
std::vector<char> utf8(len);
WideCharToMultiByte(CP_UTF8,0,buf,-1,&utf8[0],len,NULL,NULL);
return std::string(&utf8[0]);
} std::wstring MB2WC(const char* buf)
{
int len=MultiByteToWideChar(CP_ACP,0,buf,-1,NULL,0);
std::vector<wchar_t> unicode(len);
MultiByteToWideChar(CP_ACP,0,buf,-1,&unicode[0],len);
return std::wstring(&unicode[0]);
} //参数要用指针。
void URLEncode(CString* str)
{
std::string sln=str->GetBuffer(0);
sln=WC2UT(MB2WC(sln.c_str()).c_str());
std::string sOut;
for (size_t ix=0;ix<sln.size();ix++)
{
BYTE buf[4];
memset(buf,0,4);
if (isalnum((BYTE)sln[ix]))
buf[0]=sln[ix];
else if (isspace((BYTE)sln[ix]))
buf[0]='+';
else
{
buf[0]='%';
buf[1]=toHex((BYTE)sln[ix]>>4);
buf[2]=toHex((BYTE)sln[ix]%16);
}
sOut+=(char*)buf;
}
CString out=sOut.c_str();
*str=out;
}
 

http 遇到中文表单 转码的更多相关文章

  1. XMLHttpRequest的POST中文表单问题解决方案

    XMLHttpRequest的POST中文表单问题解决方案 由于XMLHttpRequest POST的内容是用UTF-8编码,所以在服务端要先把request的编码改为UTF-8. 而且客户端pos ...

  2. Struts1 中提交中文表单到ActionForm后出现乱码问题的原因及处理方法

    问题: 在你所有页面设置的编码都是utf-8的情况下仍然会出现中文乱码现象. 一.乱码出现原因 由于Struts框架直接把表单数据发送给了ActionForm,所以这里面没有对HttpRequestS ...

  3. 【.net+jquery】绘制自定义表单(含源码)

    前言 两年前在力控的时候就想做一个类似的功能,当时思路大家都讨论好了,诸多原因最终还是夭折了.没想到两年多后再这有重新提出要写一个绘制表单的功能.对此也是有点小激动呢?总共用时8.5天的时间基本功能也 ...

  4. 关于form表单onsubmi提交

    表单允许客户端的用户以标准格式向服务器提交数据.表单的创建者为了收集所需数据,使用了各种控件设计表单如 INPUT 或 SELECT.查看表单的用户只需填充数据并单击提交按钮即可向服务器发送数据.服务 ...

  5. jQuery Validation Engine 表单验证

    功能强大的 jQuery 表单验证插件,适用于日常的 E-mail.电话号码.网址等验证及 Ajax 验证,除自身拥有丰富的验证规则外,还可以添加自定义的验证规则. 兼容 IE 6+, Chrome, ...

  6. form表单钩子,局部钩子和全局钩子

    form表单源码解析: 局部钩子: 全局钩子:

  7. jqTransform:呈现更美的表单

    jqTransform,是DFC Engineering写的一个jQuery的样式插件,用于美化表单元素,使用方便简单,能美化所有表单元素包括input,radio,textarea,select,c ...

  8. Bootstrap 表单示例

    1.打开https://getbootstrap.com/docs/4.3/examples/checkout/复制表单源码 2.清空main标签内容 3.粘贴表单源码 4.示例图

  9. Python爬虫笔记【一】模拟用户访问之表单处理(3)

    学习的课本为<python网络数据采集>,大部分代码来此此书. 大多数网页表单都是由一些HTML 字段.一个提交按钮.一个在表单处理完之后跳转的“执行结果”(表单属性action 的值)页 ...

随机推荐

  1. Linux记录-I/O系统监控

    几个基本的概念 在研究磁盘性能之前我们必须先了解磁盘的结构,以及工作原理.不过在这里就不再重复说明了,关系硬盘结构和工作原理的信息可以参考维基百科上面的相关词条——Hard disk drive(英文 ...

  2. jquery load 陷阱【原】

    基础写法 function load(targetId,templateName) { $("#"+targetId).load(contextPath+templateName) ...

  3. ArcGis Go to XY功能代码C#

    IPoint point = new PointClass(); point.PutCoords(x,y); IEnvelope pEnvelope= this.m_hookHelper.Active ...

  4. vertica系列:时间相关函数

    -- * 注意: 本文的SQL是在 2017-09-14 测试的. 所以如果取当前日期, 结果为 2017-09-14* ------------------------------ 相关数据类型 - ...

  5. IIS Express URL Rewrite无效

    点击一下项目,再选择属性选项卡(不是右键属性) 如上图,如果托管管道模式是集成的话,改为经典即可.如果在vs2010的 WebDev.WebServer40方式启动 默认就是经典模式

  6. 【六】Hystrix Dashboard

    除了隔离依赖服务的调用以外,Hystrix还提供了准实时的调用监控(Hystrix Dashboard) , Hystrix会持续地记录所有通过 Hystrix发起的请求的执行信息,并以统计报表和图形 ...

  7. ASP.NET Web API 2 使用 DelegatingHandler(委托处理程序)实现签名认证

    Ø  前言 在前一篇ASP.NET Web API 2 使用 AuthorizationFilter(授权过滤器)实现 Basic 认证文章中实现了采用 Basic 认证的方式,但是这种方式存在安全隐 ...

  8. 简单回射程序之处理accept返回EINTR错误的服务器程序版本

    #include <stdio.h> #include <stdlib.h> #include <time.h> #include <errno.h> ...

  9. 常用SQL语句大全总结

    出处:http://www.cnblogs.com/0351jiazhuang/p/4530366.html SQL是(Structured Query Language)结构化查询语言的简称,下面赵 ...

  10. python后端将svc文件数据读入数据库具体实现

    如何用python将svc文件的数据读入到MySQL数据库里,在此直接上代码了,感兴趣的朋友可以贴代码测试: import pandas as pd import os from sqlalchemy ...