我计划开发基于Windows的客户端应用程序和平台无关的服务器应用程序。客户端应用基本上将消息发送到服务器应用程序。客户端应用程序可以用英语或其他语言发送消息。我应该使用UNICODE在我的客户端应用程序中编码消息吗?网络通信涉及的应用程序的一般做法是什么?我的客户端和服务器应用程序将使用自定义协议通过TCP / IP交换消息。默认情况下Windows和UNIX平台支持哪种UNICODE编码?我是否应该在协议中交换编码类型以解码UNICODE消息?请指教。
答案 0 :(得分:3)
寻找UTF-8,8位字节的unicode编码,对英语和西方语言有效。
交换编码类型总是一个好主意,以防你以后想要支持别的东西。
所有主要操作系统和计算机语言都支持UTF-8。
答案 1 :(得分:1)
如果您同时控制服务器和客户端,我会选择1种编码类型并坚持下去。
我建议使用UTF-8(英语和西方语言最有效)或UTF-16(确保选择字节顺序)。
答案 2 :(得分:0)
你可以使用你想要的任何编码,你只需要小心像字节顺序这样的事情。 Windows内部使用UTF-16(little-endian),因此如果您希望大多数系统都是Windows,那么您可能应该使用它。否则,我建议使用UTF-8,它不需要担心字节顺序问题。
如果您选择UTF-16(或UTF-32,我绝对不会推荐),请明确说明线路上数据的字节顺序是什么。然后,对于每个读取或写入Unicode字符到网络套接字的客户端,将平台的本机字节序转换为网络字节序 - 这可以是无操作或字节交换。