C++服务器和unity3d的C#通信乱码问题
2016-07-15 19:47
1071 查看
本文为原创,转载请注明出处!
前段时间把工作辞掉了,发现做的问题有点多,最新发现在做C++服务器和UNITY3D通信,在传输的结构体上,因为两边类型不一样,传输接受全是乱码,搞了1天多,有了一点心得。
其他的类型对应,在网上很容易找到,主要是C++里面的TCHAR和C#的string对应问题。
ansi编码 TCHAR占用1个字节 Unicode编码 占用2个字节
因为传输的字符串中有中文,所以采用Unicode编码,在C#这边要这么写。
前段时间把工作辞掉了,发现做的问题有点多,最新发现在做C++服务器和UNITY3D通信,在传输的结构体上,因为两边类型不一样,传输接受全是乱码,搞了1天多,有了一点心得。
其他的类型对应,在网上很容易找到,主要是C++里面的TCHAR和C#的string对应问题。
ansi编码 TCHAR占用1个字节 Unicode编码 占用2个字节
因为传输的字符串中有中文,所以采用Unicode编码,在C#这边要这么写。
//结构体采用顺序排列,采用Unicode字符集,1字节对齐 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode, Pack = 1)] struct CMD_GR_LogonByAccounts { public byte Flags; //标识 //转为string 固定大小10字节 [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 10)] public string PassWord; // 密码 [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 10)] public string Accounts; // 帐号 };
相关文章推荐
- unity3d 第四天
- Unity5学习心得-Gameplay
- Unity vs UE4,虚拟现实开发引擎如何抉择?
- [UnityShader3]彩光效果
- Unity Android插件错误 Found plugins with same names and architectures
- unity Vector3
- Unity5学习心得-Asset
- Unity3d 顶点和片段着色器学习笔记
- Unity3d 着色器语法(Shader)
- 解读Unity中的CG编写Shader系列目录
- 解读Unity中的CG编写Shader系列三
- 解读Unity中的CG编写Shader系列二
- 解读Unity中的CG编写Shader系列一
- Unity集成内嵌网页插件-支持Android和IOS
- unity3d TextMesh清晰字体
- Unity 3D 5.3.5f1 不支持SDK 的build-tools 24
- [置顶] 基于Unity引擎的简单对象池
- Unity IOS获取系统版本号
- unity3d培训_002
- unity3d 压缩文件夹和压缩文件