|
|
|
| Если не ошибаюсь, UTF-8 без BOM это кодировка, в которой каждому символу соответствует 1 байт. А просто UTF-8 тоже самое только в начале файла идут символы ef bb bf (в HEX)
Я всё правильно понял? Какой из них лучше использовать когда сохраняешь файлы?
И ещё. Что значит строчка в статус-баре Notepad++"ANSI AS UTF-8"? Это когда выбираешь кодировку "UTF-8 без BOM" | |
|
|
|
|
|
|
|
для: sasha1133
(11.02.2010 в 02:27)
| | без BOM.
если сохраните с ним, то на файлах, где есть сессии или заголовки, будет ошибка. | |
|
|
|
|
|
|
|
для: sasha1133
(11.02.2010 в 02:27)
| | Если написать в utf-8 файл в 3 символа, русский пробел и английский
'З Z'
покажет без BOM
d0 97 20 5a
а с ним
ef bb bf d0 97 20 5a
т.е. два байта там только первая буква, bom это три байта
причём если набрать в строке "Выполнить" charmap
, выбрать юникод-шрифт, например "Arial"
, то символ З там записан как U+0417 Cirrilic Capital Letter Ze
а Z как U+005a Latin Capital Letter Z
т.е. чтобы файл не весил в два раза больше, из юникода сделали utf-8,
но я что-то не понял зачем сделали d097 из 0417, просто лень лезть искать чего почитать, из-за какой-то мелочи ,) | |
|
|
|
|
|
|
|
для: sasha1133
(11.02.2010 в 02:27)
| | BOM актуален только для UTF-16 и UTF-32. В UTF-8 вообще нет такого понятия как BOM. | |
|
|
|
|
|
|
|
для: Саня
(11.02.2010 в 23:40)
| | В notepad++ есть UTF-8 с BOM и без. | |
|
|
|
|
|
|
|
для: sasha1133
(12.02.2010 в 01:30)
| | И что? | |
|
|
|
|
|
|
|
для: Саня
(12.02.2010 в 07:17)
| | То что судя по всему в UTF-8 есть такое понятие как BOM. Вот попробовал сохранить русский текст с помощью notepad++ в кодировке UTF-8 без BOM - размер файла в байтах равен количеству символов (1 байт - 1 символ). Потом тот же текст просто в UTF-8 - получился файл на 3 байта больше, т.е. в начало файла добавился этот BOM, разве нет? | |
|
|
|
|
|
|
|
для: sasha1133
(12.02.2010 в 12:32)
| | Понятием BOM является символ Byte Order Mark из набора UNICODE (а значит он есть в любых Unicode Transformation Formats - не важно 8-ми , 16-и или 32-разрядных.)
Другое дело, что всё же - применительно к www - кодировку UTF-8 стараются использовать по умолчанию, без этого символа (поскольку он мешает php-обработке). На этом, видимо, Саня и хотел сделать акцент.
Сам по себе этот символ никакой значимой информации (помимо того, что по его байтовому представлению можно опознать конкретную форму UNICODE) не несет. | |
|
|
|
|
|
|
|
для: sasha1133
(12.02.2010 в 12:32)
| | Нужно смотреть не на то, что написано в редакторе, а на то, что написано в стандарте.
BOM = Byte Order Mark = метка порядка следования байтов. Стандарт не определяет порядок следования байтов в UTF-8.
Поэтому три символа в начале файла с кодами EF BB BF нельзя считать BOM. На самом деле эта сигнатура обозначает, что дальше идёт текст в формате UTF-8.
> размер файла в байтах равен количеству символов (1 байт - 1 символ)
Это верно только для символов с кодом менее 128. | |
|
|
|
|
|
|
|
для: Саня
(12.02.2010 в 13:13)
| | В UTF-8 порядок следования байтов определен, (равно как и порядок следования бит в кодовых позициях байтов) и определен весьма жестко.
В начале файла нет трех символов с кодами EF BB BF
В начале файла есть три байта EF BB BF, представляющие один символ - Byte Order Mark (0...0FEFFu). | |
|
|
|
|
|
|
|
для: Trianon
(12.02.2010 в 13:22)
| | >Это верно только для символов с кодом менее 128.
Ну пожалуй соглашусь, только что замутил файл который состоял из 94 символов и весил 188 байт без БОМ и 191 с БОМ. | |
|
|
|