Похоже, я как-то упустил момент, так что вот ответ, и следит за разглагольствованиями по кодировкам.
xml:lang="en"
не запрещает вам использовать любой символ, который вы хотите, это только метаданные для использования браузером, поисковыми системами, программным обеспечением для обеспечения доступности и т. Д. Если на странице есть на английском языке, тогда продолжайте. , напишите это.
Что касается диакритических знаков, HTML поддерживает как непосредственное написание символа, так и написание сущности, как в атрибутах, так и в текстовых узлах (и, возможно, также в именах узлов, но я не уверен; во всяком случае, этого не произойдет с HTML ). Однако, на мой взгляд, проще использовать UTF-8 везде, чем избегать сущностей; и есть 4 способа установить кодировку страницы, поэтому трудно поверить, что в практическом случае это невозможно.
С практической точки зрения, будучи говорящим по-французски с диакритическими знаками в моем имени, я нахожу это ОСНОВНОЕ раздражение (и уценка не позволит мне подчеркнуть ОСНОВНЫЕ достаточно), когда веб-сайты не поддерживают выделенные буквы. Даже если вы установите xml:lang
на английский, эта проблема не решится.
Я рекомендую вам использовать UTF-8, потому что он обратно совместим с ASCII и может кодировать каждый символ UCS. Если у вас нет контроля над заголовками HTTP, у вас все еще есть два варианта: объявление XML и тег meta
.
Если я правильно помню, если вы получили XML-документ, атрибут encoding
в теге <?xml?>
имеет приоритет. Это ваше первое решение, но, вероятно, оно не поддерживается устаревшими браузерами.
<?xml encoding="UTF-8"?>
Другой вариант, который гораздо лучше поддерживается, - использовать тег meta
, чтобы сообщить браузеру о кодировке. В HTML4- вы можете использовать это:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
В HTML5 + вы можете использовать эту более простую форму:
<meta charset="UTF-8">
Поскольку вы используете XHTML, вы захотите закрыть их самостоятельно (и использовать соответствующий тип application/xhtml+xml
MIME в теге Content-Type
<meta>
).