Как я могу правильно отображать немецкие символы в HTML?

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

<label> ausgefüllt </label>

person venkatachalam    schedule 08.01.2009    source источник
comment
не могли бы вы предоставить текст на немецком языке и указать, какие браузеры   -  person annakata    schedule 08.01.2009
comment
‹label›ausgefüllt‹label›, я тестирую в FF v3.0.5   -  person venkatachalam    schedule 08.01.2009
comment
Было бы неплохо, если бы вы указали эту информацию в тексте вопроса, чтобы все могли ее увидеть, не читая комментарии. Спасибо!   -  person guerda    schedule 08.01.2009


Ответы (9)


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

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

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

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

person Michael Borgwardt    schedule 08.01.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.

person Karsten    schedule 08.01.2009
comment
Я уже добавил в тег «Моя голова», но у меня есть скрытый персонаж - person venkatachalam; 08.01.2009
comment
то ваш документ, вероятно, на самом деле не сохранен в UTF-8 - person Michael Borgwardt; 08.01.2009
comment
Вам нужен правильный заголовок для отправки с веб-сервера. META-тега будет недостаточно - person Gareth; 08.01.2009
comment
Объяснение: изначально предполагалось, что веб-сервер будет анализировать файл и устанавливать его заголовки в соответствии с тегами ‹META HTTP-EQUIV=...›, но веб-серверы обычно этого не делают, и не указано, как должен вести себя браузер, если они не согласны. - person Michael Borgwardt; 08.01.2009
comment
@brazzy: подробно указано: w3.org /TR/REC-html40/charset.html#spec-char-encoding и есть несколько статей FAQ/QA на веб-сайте W3C по этому поводу. - person Kornel; 08.01.2009

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

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
person tulasidhar    schedule 15.05.2012

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

Вы можете узнать, как вводить другие буквы, здесь.

person Göran Lilja    schedule 08.01.2009
comment
это крайне непрактично, учитывая, насколько они будут распространены, он не должен и не должен кодировать так - person annakata; 08.01.2009
comment
Возможно, но именно так я кодирую свои домашние страницы шведскими символами. - person Göran Lilja; 08.01.2009
comment
Это обходной путь, но, к счастью, больше не требуется, если вы укажете правильную кодировку. Извините за минус, но есть гораздо лучшие решения. - person Joachim Sauer; 08.01.2009
comment
На самом деле, я этого не знал. Наверное, я один из тех, кто нагло ссылается на два поста ниже. :/ - person Göran Lilja; 08.01.2009

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

person Rowland Shaw    schedule 08.01.2009

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

Короче:

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

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

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

person myplacedk    schedule 08.01.2009

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

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

Это должно отображать символы в порядке.

person Kieran    schedule 18.11.2012

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

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

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

person Hriju    schedule 12.11.2014

введите здесь описание изображения

сохраните как свой файл с UTF8 и используйте этот META:

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
person Eyni Kave    schedule 15.08.2020