在suse接win平台发的 socket 数据,win侧对方用了wchar_t类型来存中文。suse上的结构体和win平台写的一样,就是接不到数据。
查了资料才知道 wchar_t 在win平台和Linux上长度是不一样的。坑死!!!! 之前在linux上没用过这个类型。
win平台 wchar_t a[]=L"啊" 两个字节 是utf-16。
linux平台wchar_t a[]=L"啊" 四个字节,是utf-32。
linux 接win发来的wchar_t 用char16_t 就OK了。
记录一下!