2013-02-03 266 views
0

这个问题是纯粹的teoretical,而不是正确的做法,但我们需要将char'x'转换为网络格式吗?我在所有情况下都会被吸引:总是/有时/从不 我个人认为我应该但我需要确定,比你。通过套接字发送的字符

+0

*哪个*“网络格式”?如果它是*网络字节顺序*,则比通过@G_G查看答案。 –

+0

我们在这里谈论两件不同的事情。我认为*网络字节顺序*是指八位字节顺序(特别是8位字节)的一种形式,而C中的一个字节的CHAR_BIT位可能大于或等于8. – Sebivor

回答

3

没有,char是一个字节值,因此字节顺序并不重要

3

当你想它(字节序,再用ntohl ntohs和,等...),没有。

基本上,我应该提出一个非网络限制的警告:任何未附加其编码的字符串都是不可读的。

假设您通过网络发送/存储或不存储字符串“Français”,'ç'必须使用字符编码进行编码。不指定字符编码意味着如果您使用utf8对其进行编码,但您的读者认为它是latin1,则它可以被读为“Franais”。

所以,你有两种解决方案:

  • 写下一个规格为你的应用程序只使用相同的字符编码
  • 将元数据上的头某处指定为未来的字符串编码(如HTTP) 。
+0

是的,更一般地说任何*数据*不是附上它的编码是不可读的。这是超越网络乃至计算机科学的基本规则。两端需要共享相同的编码/解码规则或不能进行通信。 –