Как правильно отобразить немецкие символы в HTML? - PullRequest
25 голосов
/ 08 января 2009

Мои страницы содержат немецкие символы, и я набрал текст между HTML-тег, но браузер отображает некоторые символы по-разному. Нужно ли что-нибудь включать в HTML, чтобы правильно отображать немецкие символы?

<label> ausgefüllt </label>

Ответы [ 8 ]

61 голосов
/ 08 января 2009

Кажется, вам нужны базовые объяснения чего-то, что, к сожалению, даже большинство программистов не понимают должным образом.

Файлы, подобные вашей HTML-странице, сохраняются и передаются через Интернет в виде последовательности байтов, но вы хотите, чтобы они отображались в виде символов. Чтобы перевести байты в символы, вам нужен набор правил, называемый кодировка символов . К сожалению, существует много разных кодировок символов, которые исторически возникли для работы с разными языками. Большинство из них основаны на американской кодировке ASCII , но как только у вас есть символы вне ASCII, такие как German umlauts , вы должны быть очень осторожны в отношении того, какую кодировку вы используете.

Источник вашей проблемы в том, что для правильного декодирования HTML-файла браузер должен знать, какую кодировку использовать. Вы можете сказать это несколькими способами:

Таким образом, вам нужно выбрать одну кодировку, сохранить файл HTML, используя эту кодировку, и убедиться, что вы объявили эту кодировку хотя бы одним из способов, перечисленных выше (и если вы используете более одной убедитесь, что они согласны). Что касается того, какую кодировку использовать, немцы обычно используют ISO / IEC 8859-15 , но UTF-8 является хорошей альтернативой, которая может обрабатывать любые типы символов не-ASCII одновременно время.

27 голосов
/ 08 января 2009

UTF-8 - твой друг.

Попробуйте

<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=utf-8">

и проверьте, какую кодировку отправляет ваш веб-сервер в заголовке.

Если вы используете PHP, вы можете отправлять свои собственные заголовки следующим образом (вы должны поместить это перед любым другим выводом):

<?php header('Content-Type: text/html; charset=utf-8'); ?>

Также дважды проверьте, сохранен ли ваш документ в UTF-8.

7 голосов
/ 15 мая 2012

Попробуйте решение в блоге Проблема кодировки немецких символов (2012-05-10):

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
4 голосов
/ 08 января 2009

Вы пробовали &uuml; (ü) и &Uuml; (Ü)?

Здесь вы можете найти другие буквы .

2 голосов
/ 12 ноября 2014

Вы можете попробовать функции utf8_encode () или utf8_decode (). Проверьте, работает ли какая-либо из этих функций.

Например <?php echo utf8_encode('ausgefüllt'); ?>

Надеюсь, это сработает.

2 голосов
/ 18 ноября 2012

Объявить <META HTTP-EQUIV="content-type" CONTENT="text/html; charset=utf-8">

и при сохранении файла, например, в блокноте, выберите сохранение как UTF-8, а не только .txt.

Это должно сделать символы хорошо.

2 голосов
/ 08 января 2009

Мне не нравится использование сущностей HTML (например,% uuml;), они нужны только тогда, когда с вашим набором символов что-то не так.

Короче говоря:

ПРАВИЛЬНЫЙ способ исправить ваш набор символов.

ПРОСТОЙ способ - просто использовать сущности. Вы можете никогда не увидеть никаких проблем с этим.

Отслеживание ошибки набора символов может быть очень трудным. Если вы дадите нам URL-адрес, по которому мы увидим проблему, мы, вероятно, дадим вам хороший совет, где искать.

2 голосов
/ 08 января 2009

Похоже на проблему с кодировкой символов, поскольку файл сохраняется как кодировка символов, отличная от того, что говорит веб-сервер.

...