Когда в языке программирования (например javascript) мы пишем что-то в строку или добавляем символ (a = ''; a += 'b';), то в какой кодировке она хранится в самой памяти ?
Зачем указывать кодирвоку при открытии текстового файла (Node js) если это просто набор бит?
Зачем при сохранении указывать кодировку? Может чтоб битовая последовательность из памяти сохранилась именно в этой кодировке ? Но это не так. Ведь если я напишу строку и поставлю кодировку hex (Опять же я про node js) он ничего не сделает пустой файл. Даже hex edit показывает что там просто ничего нет. Как это всё работает? Просто помогите мне!
Вы немного неправильно представляете себе понятие "кодировка".
Кодировка - это "не представление последовательности бит при сохранении их в файл". Биты в памяти сохраняются в биты в файле без какого-то перекодирования.
в какой кодировке она хранится в самой памяти ?
Nodejs, как и многие другие языки высокого уровня, работает со строками не как с "битами в памяти", а как с последовательностью символов (именно символов, не байт!). Все операции со строками (a = ''; a += 'b';) принимают на вход строки, и возвращают строки.
Да, где-то внутри при этом в памяти перекладываются байты (которые являются представлением строки в какой-то кодировке). Но при этом в терминах языка и платформы вы работаете со строками именно как со строками, а не с массивами байт.
Так что ответ - неважно в какой, это особенности внутренней реализации строк, и на результат работы со строками это никак не влияет.
Зачем указывать кодирвоку при открытии текстового файла (Node js) если это просто набор бит?
Зачем при сохранении указывать кодировку? Может чтоб битовая последовательность из памяти сохранилась именно в этой кодировке ?
Строка - это последовательность символов, а не "битовая последовательность из памяти".
Сама по себе необходимость явного преобразования ее в биты в какой-то конкретной кодировке появляется только при сохранении строки в файл (который является массивом байт на диске), при передаче строки по сети (в виде массива байт), или при попытке явно поработать с ней как с байтами.
Именно поэтому при открытии файла вам приходится указывать кодировку - чтобы явно задать, как преобразовать строку (последовательность символов) в байты файла, и наоборот.
Да, при этом где-то внутри реализации на самом деле происходит перекодирование из "строки в виде байт с использованием кодировки хранения в памяти" в "строку в виде байт, указанных при сохранении файла", но это внутренняя реализация механизма. С точки зрения платформы - вы сохраняете строку (символы) в виде байт на диск.
Зачем указывать кодирвоку при открытии текстового файла (Node js) если это просто набор бит?
А вот какую букву этот набор бит (лучше, наверное, говорить про набор байт) - вот именно это и определяется кодировкой. Кодировка - это именно соответствие буквы и набору байт. И один и тот же набор может показать совершенно разный текст в зависимости от кодировки.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости