Некоторые символы занимают больше байтов, чем другие?
Я не очень опытен с вещами более низкого уровня, такими как, как много байтов, персонаж. Я попытался выяснить, равен ли один символ одному байту, но безуспешно.
Мне нужно установить разделитель, используемый для сокетных соединений между сервером и клиентами. Этот ограничитель должен быть как можно меньше (в байтах), чтобы минимизировать пропускную способность.
Текущий разделитель - "#". Может ли получение другого разделителя уменьшить мою пропускную способность?
4 ответа
Это зависит от того, какую кодировку символов вы используете для перевода между символами и байтами (что совсем не одно и то же):
- В ASCII или ISO 8859 каждый символ представлен одним байтом
- В UTF-32 каждый символ представлен 4 байтами
- В UTF-8 каждый символ использует от 1 до 4 байтов
- В ISO 2022 все гораздо сложнее
Символы US-ASCII (из которых # равно одному) будут занимать только 1 байт в UTF-8, который является наиболее популярной кодировкой, которая допускает многобайтовые символы.
Ответ, конечно, в том, что это зависит. Если вы используете чистый ASCII env, то да, каждый символ занимает 1 байт, но если вы используете enicode env (например, всю Windows), то размер символов может варьироваться от 1 до 4 байт.
Если вы выберете символ из набора ASCII, тогда ваш разделитель будет как можно меньше.
Это зависит от кодировки. В однобайтовых наборах символов, таких как ANSI и различных наборах символов ISO8859, это один байт на символ. Некоторые кодировки, такие как UTF8, имеют переменную ширину, где количество байтов для кодирования символа зависит от кодируемого глифа.
Нет, все символы имеют длину 1 байт, если вы не используете Юникод или широкие символы (например, для акцентов и других символов).
Длина символа составляет 1 байт или 8 битов, что дает 256 возможных комбинаций для формирования символов. 1-байтовые символы называются символами ASCII. Они используют только 7 бит (хотя 8 доступны, но вы не можете использовать этот 8-й бит), чтобы сформировать стандартный алфавит и различные символы, используемые, когда телетайпы и пишущие машинки все еще были распространены.
Вы можете найти диаграмму ASCII и какие цифры соответствуют каким символам здесь.