Проблема, которая так и не была решена при разработке, заключается в том, что на странице используется кодировка UTF8, а в заголовке и хвосте используется метод включения файлов шаблона. В результате в заголовке и хвосте остается лишняя пустая строка размером около 10 пикселей без каких-либо ограничений. причина, и нет ничего.
Причина в том, что все они закодированы в utf8. При включении файлов окончательный двоичный поток содержит несколько тегов спецификации UTF8. IE не может нормально анализировать страницы, содержащие несколько тегов спецификации UTF8, и напрямую заменяет их фактически отображаемыми символами возврата каретки, что приводит к ошибке. Пустые строки, но в Firefox нет этой проблемы.
Поэтому, если шаблон использует метод включения и содержит несколько файлов utf8 и его необходимо сохранить с помощью ultraedit, просто выберите utf8 без формата спецификации при сохранении как функция.
Кроме того, если на китайской странице тег заголовка помещается перед <meta http-equiv=”content-type” content=”text/html; charset=UTF-8″ /> в теге заголовка html, страница будет иметь вид пустой.
Таким образом, страницы utf8 должны использовать стандартный порядок
<meta http-equiv="content-type" content="text/html charset=UTF-8" />;
<meta http-equiv="content-language" content="zh-CN" />
<meta name=”robots” content=”index,follow” />
<meta name="keywords" content="" />
<meta name="description" content="" />
<meta name="рейтинг" content="общее" />
<meta name="author" content="" />
<meta name="copyright" content="" />
<meta name="generator" content="" />
<title></title>
Заголовок спецификации: xEFxBBxBF PHP4 и 5 по-прежнему игнорируют спецификацию, поэтому они выводятся непосредственно перед анализом.
В стандартном FAQ w3.org есть специальное описание этой проблемы:
http://www.w3.org/International/questions/qa-utf8-bom
Подробности следующие:
В кодировке UCS есть код называется символом «ZERO WIDTH NO» -BREAK SPACE», его кодировка — FEFF. FFFE — это символ, которого нет в UCS, поэтому он не должен появляться в реальной передаче. Спецификация UCS рекомендует передавать символы «НУЛЕВАЯ ШИРИНА БЕЗ РАЗРЫВОВ» перед передачей потока байтов. Таким образом, если получатель получает FEFF, это указывает на то, что поток байтов имеет обратный порядок байтов; если он получает FFFE, это указывает на то, что поток байтов имеет прямой порядок байтов; Поэтому символ «НУЛЕВАЯ ШИРИНА БЕЗ РАЗРЫВОВ» также называется спецификацией.
UTF-8 не требует спецификации для указания порядка байтов, но может использовать спецификацию для указания метода кодирования. Кодировка UTF-8 символа «ZERO WIDTH NO-BREAK SPACE» — EF BB BF. Таким образом, если получатель получает поток байтов, начинающийся с EF BB BF, он знает, что он закодирован UTF-8.
Windows — это операционная система, которая использует спецификацию для обозначения метода кодировки текстовых файлов: WindowsXP Professional, набор символов по умолчанию: китайский.
1) Блокнот: может автоматически идентифицировать файлы в формате кодировки UTF-8 без спецификации, но не может контролировать сохранение файлов. добавить спецификацию Если файл сохранен, спецификация будет добавлена единообразно.
2) editplus: не может автоматически распознавать файлы формата кодировки UTF-8 без спецификации. При сохранении файла выберите формат UTF-8 и не будет писать заголовок спецификации в заголовке файла.
3) UltraEdit: самая мощная функция для кодировки символов. автоматически идентифицировать файлы UTF-8 со спецификацией и без спецификации (можно настроить при сохранении, вы можете выбрать, добавлять ли спецификацию через конфигурацию (
Особое примечание: при сохранении вновь созданного файла вам необходимо выбрать сохранение в формате UTF
);-8 no bom формат)
Позже я обнаружил, что в Notepad++ также лучше поддерживается utf-8 bom, и я всем рекомендую его использовать.