做某些字符需要比别人更多的字节?(Do certain characters take more b

2019-06-24 06:10发布

我不是很有经验,以低级别的东西,如字节的howmany一个字符。 我试图找出如果一个字符等于一个字节,但没有成功。

我需要设置用于服务器和客户端之间的套接字连接的分隔符。 此分隔符必须是尽可能小(以字节计)越好,以减少带宽。

电流限定为“#”。 将得到的其他定界符降低我的带宽?

Answer 1:

这取决于你用什么字符编码字符和字节(这是不是在所有相同的东西)之间进行转换:

  • 在ASCII或ISO 8859,每个字符使用一个字节表示
  • 在UTF-32中,每个字符由4个字节表示
  • 在UTF-8,每个字符使用1和4之间的字节
  • 在ISO 2022,它更复杂

US-ASCII字符(whcich的#是一个)将只需要1 UTF-8字节,这是最流行的编码,它允许多字节字符。



Answer 2:

这取决于编码。 在单字节字符集,如ANSI和各种ISO8859字符集是每个字符一个字节。 一些编码如UTF8是可变宽度,其中以编码的字节数的字符取决于字形被编码。



Answer 3:

答案当然是它依赖。 如果你是一个纯ASCII ENV,那么是的,每一个字符需要1个字节,但如果你是在一个Unicode ENV(所有Windows例如),那么字符可以从尺寸1至4个字节的范围内。

如果选择从ASCII字符集一个字符,然后是你的delimter是尽可能小。



Answer 4:

不,所有字符都是1个字节,除非你使用Unicode或宽字符(口音和其他符号的例子)。

字符是1个字节,或8位,长这给256个可能的组合,以形成字符。 1个字节字符称为ASCII字符。 他们只用7位(即使8是可用的,但你不能用这个第8位),形成标准的字母和使用时,电传打字机和打字机依然常见的各种符号。

你可以找到一个ASCII表,哪些编号对应哪些字符在这里。



文章来源: Do certain characters take more bytes than others?