7

文字のバイト数など、低レベルのことはあまり経験していません。1文字が1バイトに等しいかどうかを調べてみましたが、成功しませんでした。

サーバーとクライアント間のソケット接続に使用する区切り文字を設定する必要があります。この区切り文字は、帯域幅を最小限に抑えるために、可能な限り小さくする必要があります(バイト単位)。

現在の区切り文字は「#」です。他の区切り文字を取得すると、帯域幅が減少しますか?

4

4 に答える 4

20

文字とバイトの間の変換に使用する文字エンコーディングによって異なります (まったく同じではありません)。

  • ASCII または ISO 8859 では、各文字は 1 バイトで表されます。
  • UTF-32 では、各文字は 4 バイトで表されます。
  • UTF-8 では、各文字は 1 ~ 4 バイトを使用します。
  • ISO 2022 では、はるかに複雑です。

US-ASCII 文字 (そのうちの # は 1 つ) は、マルチバイト文字を許可する最も一般的なエンコーディングである UTF-8 で 1 バイトしか使用しません。

于 2009-06-26T13:43:19.783 に答える
5

エンコーディングに依存します。ANSI やさまざまな ISO8859 文字セットなどのシングルバイト文字セットでは、1 文字あたり 1 バイトです。UTF8 などの一部のエンコーディングは可変幅で、文字をエンコードするバイト数はエンコードされるグリフによって異なります。

于 2009-06-26T13:35:21.157 に答える
5

もちろん、答えは場合によるということです。純粋な ASCII 環境にいる場合、はい、すべての char は 1 バイトを使用しますが、Unicode 環境 (すべての Windows など) にある場合、文字のサイズは 1 から 4 バイトの範囲です。

ASCII セットから char を選択した場合、はい、区切り文字は可能な限り小さくなります。

于 2009-06-26T13:38:41.447 に答える
-6

いいえ、Unicodeまたはワイド文字(アクセントやその他の記号など)を使用している場合を除き、すべての文字は1バイトです。

文字は1バイトまたは8ビットの長さで、文字を形成するための256の可能な組み合わせを提供します。1バイト文字はASCII文字と呼ばれます。テレタイプやタイプライターがまだ一般的であったときに使用される標準のアルファベットとさまざまな記号を形成するために、7ビットしか使用しません(8ビットは使用可能ですが、この8ビットは使用できません)。

ここでASCIIチャートとどの数字がどの文字に対応するかを見つけることができます

于 2009-06-26T13:32:16.157 に答える