Некоторые символы занимают больше байтов, чем другие?

Я не очень разбираюсь в вещах более низкого уровня, таких как количество байтов, которые есть у персонажа. Я попытался выяснить, равен ли один символ одному байту, но безуспешно.

Мне нужно установить разделитель, используемый для сокетных соединений между сервером и клиентами. Этот ограничитель должен быть как можно меньше (в байтах), чтобы минимизировать пропускную способность.

Текущий разделитель - "#". Может ли получение другого разделителя уменьшить мою пропускную способность?

 TheTXI26 июн. 2009 г., 15:47
Песто: Вы просто еще один луддит, который не понимает, что мы разрушаем Интернет, загрязняя его ненужными пикселями.
 TheTXI26 июн. 2009 г., 15:36
Вы можете использовать точку & quot;. & Quot; поскольку он использует наименьшее количество пикселей, кроме пробела.
 Pesto26 июн. 2009 г., 15:46
@samoz: игнорировать TheTXI. Он один из тех гайки окружающей среды, который постоянно говорит о том, что у него низкая площадь следа и нейтральность по отношению к пикселям. Там нет рассуждений с ними.
 Pesto26 июн. 2009 г., 15:51
@ TheTXI: Нет никаких доказательств того, что загрязнение пикселей приводит к потеплению в Интернете. Многие ученые даже не думают, что интернет-потепление реально. Я не собираюсь получать свои данные об окружающей среде от тех же самых чудаков, которые хотят использовать полностью натуральные пиксели конопли.
 Pesto26 июн. 2009 г., 15:39
@TheTXI: Тогда почему бы не использовать вместо этого пробел? Зачем тратить пиксели на всех?

Ответы на вопрос(4)

все символы имеют длину 1 байт, если только вы не используете Unicode или широкие символы (например, для акцентов и других символов).

Длина символа составляет 1 байт или 8 битов, что дает 256 возможных комбинаций для формирования символов. 1-байтовые символы называются символами ASCII. Они используют только 7 битов (хотя 8 доступны, но вы не можете использовать этот 8-й бит) для формирования стандартного алфавита и различных символов, используемых, когда телетайпы и пишущие машинки все еще были распространены.

Вы можете найти таблицу ASCII и какие цифры соответствуют каким символамВот.

 26 июн. 2009 г., 15:37
Почти все в этом ответе неверно.
 26 июн. 2009 г., 15:39
@ Майкл Как что?
 26 июн. 2009 г., 15:46
Например, уравнение символов и байтов, "1-байтовые символы называются символами ASCII", "вы не можете использовать этот 8-й бит". Я предлагаю вам прочитатьjoelonsoftware.com/articles/Unicode.html очень осторожно.
 26 июн. 2009 г., 17:09
ОП не сказал, какой язык он использует; С-специфические ответы, которые даже не распознаются как таковые, - это не то, что ему нужно. Кстати, ваш ответ неверен и для C; стандарт C действительно предписывает, что 1 символ == 1 байт (и о, сколько страданий вызвал этот идиотизм), но он НЕ требует 8-битных байтов, и на самом деле существуют архитектуры, в которых байты имеют больше или меньше битов.
 26 июн. 2009 г., 16:12
Самая важная вещь, которая является неправильной, состоит в том, что символы не являются байтами, и также нет смысла говорить, что символы "являются UTF-8". или "являются Unicode или широкими". Также персонажи не имеют длины. Вам нужно ENCODING для перевода символов в байты, и только тогда вы сможете говорить о длине и о том, какие символы поддерживает кодировка. И, конечно же, существуют кодировки, в которых символы, поддерживаемые ASCII, занимают более 1 байта.
Решение Вопроса

какую кодировку символов вы используете для перевода между символами и байтами (что совсем не одно и то же):

In ASCII or ISO 8859, each character is represented by one byte In UTF-32, each character is represented by 4 bytes In UTF-8, each character uses between 1 and 4 bytes In ISO 2022, it's much more complicated

Символы US-ASCII (из которых # равно одному) будут занимать только 1 байт в UTF-8, который является наиболее популярной кодировкой, которая допускает многобайтовые символы.

 21 авг. 2010 г., 05:54
Символы US-ASCII занимают 1 байт в значительной степениany кодировка за исключением UTF-16 и UTF-32.

конечно, в том, что это зависит. Если вы используете чистый ASCII-env, то да, каждый символ занимает 1 байт, но если вы используете enic-код enic (например, для всех Windows), то размер символов может варьироваться от 1 до 4 байт.

Если вы выберете символ из набора ASCII, тогда ваш разделитель будет как можно меньше.

таких как ANSI и различных наборах символов ISO8859, это один байт на символ. Некоторые кодировки, такие как UTF8, имеют переменную ширину, где количество байтов для кодирования символа зависит от кодируемого глифа.

Ваш ответ на вопрос