Там нет текста, но текст в кодировке.
Текст представляет собой последовательность «символов», входящих в набор символов. Набор символов представляет собой взаимно однозначное сопоставление между условным символом и неотрицательным целым числом, называемым кодовым числом.
Кодирование - это сопоставление между кодовой точкой и последовательностью байтов.
Примеры:
- ASCII, 128 кодовых, один кодирующий
- OEM437, 256 кодовые, один кодирующий
- Windows, 1252, 251 кодовые, один кодирующий
- ISO-8859-1, 256, один кодовые кодирования
- Unicode, 1,114,112 кодовые, многие кодировки: UTF-8, UTF-16, UTF-32, ...
Когда вы получаете поток байтов или читаете файл, представляющий текст, вы должны указать набор символов и кодировку. И наоборот, когда вы отправляете поток байтов или записываете файл, представляющий текст, вы позволяете получателю знать набор символов и кодировку. В противном случае у вас есть сообщение об ошибке .
Примечание. Исходный код программы - это почти всегда текстовые файлы. Таким образом, это требование связи также применяется между вами, вашим редактором/IDE и вашим компилятором.
Примечание: ввод и вывод программной консоли являются текстовыми потоками. Таким образом, это требование связи также применяется между программой, ее библиотеками и консолью (оболочкой). Отправьте locale
или chcp
, чтобы узнать, что такое кодировка.
Многие наборы символов являются надмножеством ASCII, а некоторые кодировки отображают одни и те же символы с одинаковыми последовательностями байтов. Это вызывает много путаницы, ограничивает обучение, способствует использованию плохой терминологии, а частичная взаимосвязь приводит к ошибочному коду. Преднамеренный подход к спецификациям и кодированию устраняет это.
Примеры:
- Некоторые люди говорят, что «ASCII», когда они имеют в виду общее подмножество символов между ASCII и набора символов, на самом деле они используют. В Unicode и в других местах это называется C0 Controls and Basic Latin.
- Некоторые люди говорят «ASCII-код», когда они просто означают код или кодированные байты (или единицы кода).
Контекст вашего вопроса не ясно, но оператор пытается сказать, что различные символы в ваших данных в характере ASCII набора и, следовательно, их число меньше или равно 128. В связи с сходство между наборами символов, вы можете предположить, что диапазон кодирования, о котором вам нужно беспокоиться, составляет от 0 до 127. (Поместите комментарии, утверждения или исключения, применимые в вашем коде, чтобы сделать это понятным для читателей и обеспечить некоторую проверку времени выполнения.)
Это означает, что ваш язык программирования зависит от языка программирования и его библиотек. Многие современные языки программирования используют UTF-16 для представления строк и UTF-8 для потоков и файлов. Программы часто создаются со стандартными библиотеками, которые учитывают кодировку консоли (фактическую или предполагаемую) при чтении или записи с консоли.
Итак, если ваши данные взяты из файла, вы должны прочитать его, используя правильную кодировку. Если ваши данные поступают с консоли, стандартные библиотеки вашей программы, возможно, изменят кодировки из кодировки консоли на кодировку родного символа языка и стандартной библиотеки языка и строковых типов данных. Если ваши данные поступают из файла исходного кода, вы должны сохранить его в одной конкретной кодировке и сообщить компилятору, что это такое. (Обычно вы используете кодировку исходного кода по умолчанию, принятую компилятором, потому что обычно это не изменяется от системы к системе или от человека к человеку.)
«Дополнительные» биты структур данных, вероятно, относятся к стандарту языка библиотеки, такие как список, карта или словарь. Используйте то, чему вас научили до сих пор, например, просто массив. Конечно, вы можете просто спросить.
https://en.m.wikipedia.org/wiki/ASCII – Zarwan