【问题标题】:English C++ program on foreign OS国外操作系统上的英文C++程序
【发布时间】:2013-02-21 21:21:41
【问题描述】:

我有一个非常适合英语操作系统的聊天系统。它使用多字节字符集,驱动它的服务器也是如此。

我有使用该程序的中国客户。收到消息时,会发生以下两种情况之一:如果消息是用中文输入的,则不会显示空格。如果是英文写的,点点滴滴都会显示为外来字符。

有什么建议吗?

【问题讨论】:

  • 我想这与编码和字节序有关。是否所有内容都以网络字节顺序(大端)发送和/或正确转换为机器的字节顺序?
  • 请给我们更多细节。你的程序如何与操作系统通信,操作系统的类型。可能是因为你说英语没问题,所以可能是不同的 OD 版本不需要语言
  • 您使用的是 UTF-8 吗? UTF-16? UTF-32?还有什么?使用单数字符编码是理想的。
  • 啊!我什至没有考虑字节序。我知道它,我理解它是如何工作的,我完全让它溜走了。它是一台 Windows 7 PC,通过 Windows Server 2008 R2 连接到另一台 Windows 7 PC。我将如何处理 C++ 套接字中的字节序?

标签: c++ sockets chat translation


【解决方案1】:

由于您使用 Windows 7 作为客户端,使用 Windows Server 2008 R2 作为服务器,我不认为您的问题是由于“字节顺序”的变化。您提到您使用“多字节”字符集。因此,我假设您的数据不使用标准 Unicode 编码之一,例如 UTF-8/UTF-16/UTF-32,而是使用 pre-Unicode 样式代码页对数据进行编码。如果在客户将文本输入聊天时使用了一个代码页,并且在接收者的 PC 上显示为不同的代码页,则文本可能无法正确显示。

【讨论】:

  • 好吧,我会尽可能地重建一切以使用 unicode 格式,这是一个相当大的过程。我是否也必须转换内部字符串,还是只转换基于聊天的字符串?
猜你喜欢
  • 2017-07-17
  • 2014-06-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-09
  • 2015-09-26
  • 2011-05-06
  • 1970-01-01
相关资源
最近更新 更多