在VC中如果采用Unicode方式,那么汉字和英文字符均用两个字节来表示。utf-8的编码用三个字节来表示一个汉字,一个字节来表示一个英文字母。
Unicode 和utf-8的转换为
U-00000000 - U-0000007F: 0xxxxxxx
U-00000080 - U-000007FF: 110xxxxx 10xxxxxx
U-00000800 - U-0000FFFF: 1110xxxx 10xxxxxx 10xxxxxx
U-00010000 - U-001FFFFF: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
U-00200000 - U-03FFFFFF: 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
U-04000000 - U-7FFFFFFF: 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
其中中文用的是第三行,英文用的是第一行。utf-8都是以1110类似开头的,然后x表示unicode中相应的位值。
VC中WildCharToMultiByte函数是把Unicode转换成gb2312编码。
客户端的中文问题由范宏伟解决了。主要原因是expat无法识别unicode,但识别utf-8