Как минимум в двух текстовых редакторах, что я знаю (обычный виндоуский блокнот и AkelPad) при сохранении нужно указывать кодировку сохраняемого файла. Зачем это делать надо, если файл - просто набор символов? Кодировку ведь никак не определишь, если открыть файл на другом компьютере в том же самом редакторе или другом. Или эт не так?
kombain Внутри блокнота текст всегда хранится в юникоде, но сохранить можно и в более удобном/распространенном win1251. Просто при сохранении происходит конвертация.
потому что нотепад не просто показывает содержимое по-байтно. он заточен именно под текст. например буквы в юникоде занимают по два байта, а покажет он по одному символу в итоге.
Информация сохраняется не символами, а битами, бит - 0 - сигнала нет, 1 - сигнал есть 1 байт - 8 бит (11111111) И как ты узнаешь 10001110 Какая это буква? Тебе нужна кодировка 00000001 - А 00000010 - Б ... итд итп, понятно?
Тогда вот такой вопрос у меня имеется, тесно с темой связанный. Есть файл в кодировке UTF-8. При сохранении его в кодировке cp1251 (в блокноте) блокнот ругается и говорит, что в тексте есть символы, которые будут потеряны при сохранении в новой кодировке. Я игнорирую это и сохраняю в новой. После этого заново открываю мй пересохранённый файл и вижу, что все русские буквы там стали нечитаемы. Если открыть этот же файл (до сохранения в cp1251 и после сохранения) и поискать там некие скрытые символы, то ничего не увидишь. Делал я это в AkelPad и notepad. Кроме того эти скрытые символы каким-то образом мешают выполнению PHP, так если стереть часть html-кода (замечу, что это только html-код, а не php-код), то php-страница уже выполняет другие действия! Т.е. на странице заданные ранее алгоритмы могут выполниться неправильно, не произойдёт подключение к БД данных и прочее. Как с этим бороться можно?
Да и кстати. Если переоткрыть сохранённый файл снова в том же блокноте, то все русские символы отображаются корректно. Только в других редакторах (akelpad и notepad) русские символы становятся нечитаемыми.