通过套接字发送的字符

时间:2013-02-03 21:38:29

标签: c network-programming

这个问题是纯粹的理论问题,而不是正确的做法,但我们是否需要将char'x'转换为网络格式?在所有情况下我都很沮丧:总是/有时/从不 我个人认为我应该,但我需要确定,而不是你。

2 个答案:

答案 0 :(得分:3)

不,char是单字节值,因此endianess无关紧要

答案 1 :(得分:3)

正如你所想的那样(endianess,ntohs ntohl等等),没有。

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

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

所以你有两个解决方案:

  • 为您的应用程序写下规范,仅使用相同的字符编码
  • 在某个标题上放置元数据,指定未来字符串的编码(如HTTP)。