Когда в языке программирования (например javascript) мы пишем что-то в строку или добавляем символ (a = ''; a += 'b';), то в какой кодировке она хранится в самой памяти ?
Зачем указывать кодирвоку при открытии текстового файла (Node js) если это просто набор бит?
Зачем при сохранении указывать кодировку? Может чтоб битовая последовательность из памяти сохранилась именно в этой кодировке ? Но это не так. Ведь если я напишу строку и поставлю кодировку hex (Опять же я про node js) он ничего не сделает пустой файл. Даже hex edit показывает что там просто ничего нет. Как это всё работает? Просто помогите мне!
Вы немного неправильно представляете себе понятие "кодировка".
Кодировка - это "не представление последовательности бит при сохранении их в файл". Биты в памяти сохраняются в биты в файле без какого-то перекодирования.
в какой кодировке она хранится в самой памяти ?
Nodejs, как и многие другие языки высокого уровня, работает со строками не как с "битами в памяти", а как с последовательностью символов (именно символов, не байт!). Все операции со строками (a = ''; a += 'b';
) принимают на вход строки, и возвращают строки.
Да, где-то внутри при этом в памяти перекладываются байты (которые являются представлением строки в какой-то кодировке). Но при этом в терминах языка и платформы вы работаете со строками именно как со строками, а не с массивами байт.
Так что ответ - неважно в какой, это особенности внутренней реализации строк, и на результат работы со строками это никак не влияет.
Зачем указывать кодирвоку при открытии текстового файла (Node js) если это просто набор бит?
Зачем при сохранении указывать кодировку? Может чтоб битовая последовательность из памяти сохранилась именно в этой кодировке ?
Строка - это последовательность символов, а не "битовая последовательность из памяти".
Сама по себе необходимость явного преобразования ее в биты в какой-то конкретной кодировке появляется только при сохранении строки в файл (который является массивом байт на диске), при передаче строки по сети (в виде массива байт), или при попытке явно поработать с ней как с байтами.
Именно поэтому при открытии файла вам приходится указывать кодировку - чтобы явно задать, как преобразовать строку (последовательность символов) в байты файла, и наоборот.
Да, при этом где-то внутри реализации на самом деле происходит перекодирование из "строки в виде байт с использованием кодировки хранения в памяти" в "строку в виде байт, указанных при сохранении файла", но это внутренняя реализация механизма. С точки зрения платформы - вы сохраняете строку (символы) в виде байт на диск.
Зачем указывать кодирвоку при открытии текстового файла (Node js) если это просто набор бит?
А вот какую букву этот набор бит (лучше, наверное, говорить про набор байт) - вот именно это и определяется кодировкой. Кодировка - это именно соответствие буквы и набору байт. И один и тот же набор может показать совершенно разный текст в зависимости от кодировки.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Начинаю изучение java, решил создать простенький парсер для сайтаСтолкнулся с проблемой не отображения javascript в получаемом теле сайта, а точнее...
У меня два вопроса, связанные между собой: 1) Есть ли специальные события, которые реагируют на изменение значения переменной? 2) К примеру...
Как я могу удалить элемент вложенного массива? Типа: array[i][j], где j - удаляемый элемент
Не запускается таск watch, сервер стартует, а после него ничегоВ чем проблема и как исправить?