VS2010以及更高版本中新建的MFC项目字符集默认是Unicode,CString创建的字符串默认是Unicode。

使用CSocket时,若以CString组织需要发送的HTTP Head时,那么服务器不会接受这种数据,会强制断开连接。

HTTP服务器的默认读取方式是基于char type的单字节字符串编码(ANSI-1Byte(8bit)/char(英文字符)),而Unicode是以2Byte(16bit)/char存储的,所以不能以unicode编码来构造HTTP Head.

解决方法有两种,第一种:

以CStringA class构造HTTP Head;

根据MSDN上的解释:“A CStringA object contains string data that is based on the char type, and supports single-byte and multibyte ( MBCS) strings. ”

所以直接用CStringA构造HTTP Head是可以的。

第二种:

利用WideCharToMultiByte function(http://msdn.microsoft.com/en-us/library/windows/desktop/dd374130(v=vs.85).aspx

先将Unicode编码的字符串转化成单字节的ASCII,再调用发送给服务器。

最新文章

  1. 奇怪的BUG
  2. JS-window对象集合
  3. Android 线程模型
  4. 我的第一个CUDA程序
  5. 如何学好PHP
  6. 【转】centos安装vim7.4
  7. [翻译] 编写高性能 .NET 代码--第二章 GC -- 减少大对象堆的碎片,在某些情况下强制执行完整GC,按需压缩大对象堆,在GC前收到消息通知,使用弱引用缓存对象
  8. 【备忘】Idea的那些事
  9. redis-string操作
  10. hdu3307 欧拉函数
  11. Java中的内部类————以及jdk1.8的lambda表达式
  12. OpenCV 图像特效
  13. Spring Cloud环境搭建: Eureka Server
  14. HTML <input> 标签的 name 属性
  15. NPOI创建doc
  16. Spring 小知识点
  17. js 常见事件
  18. Codeforces Round #398 (Div. 2) A B C D 模拟 细节 dfs 贪心
  19. vue-cli创建vue项目
  20. docker在团队中的实践 How To Install Docker In CentOS

热门文章

  1. java与java学习路线
  2. 使用dockerfile 构建springboot 的docker镜像
  3. Android开发1——查找所需要出示权限的内容
  4. Java中关于日期类那些方法
  5. 常用的正则表达式C#工具类
  6. The power of now
  7. js需要学习的
  8. JDBC的介绍
  9. acrobat-网格-参考线-网格大小设置
  10. valgrind: failed to start tool 'memcheck' for platform 'amd64-linux