Какое кодирование он был бы должен использовать в XML с текстом на испанском языке?

Он был приучен помещать в первую линию всех XMLs:


Он это делал почти, не думая, но потом я догадался, что ударные буквы испанца были видны плохо. Например, в Chrome:

introducir la descripción de la imagen aquí

С этого времени, я это решил используя:



Однако, Wikipedia определяет МЕЖДУНАРОДНУЮ ОРГАНИЗАЦИЮ ПО СТАНДАРТИЗАЦИИ-8859-1 как:

Международная организация по стандартизации 8859-1 - норма Международной организации по стандартизации, которая определяет кодирование латинского алфавита, включая диакритических (как ударные буквы, ñ, ç), и специальные буквы (как ß, Ø), необходимые для...

и занеси в список все символы испанца.


Вопрос

Почему видят плохо в Chrome, и чем encoding он был бы должен использовать, чтобы включать текст на испанском языке?

10
задан 03.12.2015, 14:36
6 ответов

У Chrome нет никакой проблемы, чтобы показывать текст, кодировавший в источнике как МЕЖДУНАРОДНАЯ ОРГАНИЗАЦИЯ ПО СТАНДАРТИЗАЦИИ-8859-1, но у него нет никакого способа угадывать, что это использованное кодирование, если ты не говоришь это ему ясно.

Считай следующий файл:

<?xml version="1.0" encoding="iso-8859-1"?>
<texto>áéíóú</texto> 

Такой он такой, как видят в Chrome:

introducir la descripción de la imagen aquí

Это предполагая, что текстовый редактор, использованный, чтобы производить файл действительно, это сохранял в МЕЖДУНАРОДНОЙ ОРГАНИЗАЦИИ ПО СТАНДАРТИЗАЦИИ-8859-1, просвет.

На вопросе: "Какое кодирование он был бы должен использовать?", так как он действительно зависит от контекста. Если он выполняется, что или 1) генератор и потребитель текста соглашаются в кодировании, которое он идет использовать, или 2) существует ясный механизм, чтобы демонстрировать, каково кодирование текста (директивный орган <?xml?> для файлов XML, или заголовка Content-Type для MIME и HTTP), не будет проблем.

Сказанный это, теперь, кажется, существует полуофициальное согласие использования UTF-8 как кодирование, предопределенное для всего, из-за серии причин, которые обобщены в сайтах как например этот (на английском): http://utf8everywhere.org

10
ответ дан 24.11.2019, 15:08
  • 1
    У меня есть сходная проблема. В моем случае я использую codificaci и # 243; n utf-8, и поскольку я подтвердил, есть ли у файла , Пометь команды байт (BOM) они появляются правильно. Сейчас я продолжаю быть исследовано, как способствовать тому, чтобы он включил ее autom и # 225; ticamente XMLSerializer.NET – rsciriano 03.12.2015, 14:03
  • 2
    @rsciriano, Если ты используешь UTF-8, не включай отметку команды : она не необходима и многие из программных средств, которые работают с UTF-8 и они не ожидаются она, что они могут вести себя плохо. Например, файл UTF-8 с hashbang unix становится невозможным для того, чтобы быть выполненным прямо, если он содержит ее. – Darkhogg 03.12.2015, 18:03
  • 3
    @Darkhogg у тебя есть raz и # 243; n, отметка команды ничего не решает и лучше не включать . Adem и # 225; s то, что имей, и # 237; в меня это была проблема функциональной совместимости после того, как сохранял к диску. Конечно, я соглашаюсь с ответом pzin , любое из двух кодирований функционирует, но это важно, что codificaci и # 243; n реальный файла будьте правильная – rsciriano 03.12.2015, 20:32
  • 4
    có dificació n ISO-8859-15 - versió n обновленная ISO-8859-1, он содержит algú n sí mbolo má в. – EAmez 02.05.2017, 12:42

Оба кодирования стоят тебе.

Проблемы codificaciГіn в ней mayorГ - в из случаев приходят, потому что не сохраняет файл с нею codificaciГіn, что показывается в cГіdigo файла .

Это обычно в текстовом процессоре, который ты используешь, существует какая-то opciГіn, чтобы сохранять файл с нею codificaciГіn, в котором ты нуждался. Если есть расхождения между обоими выборами, нормально, чтобы не видели хорошо.

Другая проблема podrГ, - чтобы состоять, менее обычный, в том, чтобы были посланы заголовки HTTP показывая другую codificaciГіn.

Обобщая, ты должен убеждаться, которого все указания codificaciГіn имели по отношению к ней ту же самую informaciГіn.

7
ответ дан 24.11.2019, 15:08
  • 1
    Полностью преуспевший. Cambi и # 233; c и # 243; я говорю для того, чтобы он вынудил использование того же codificaci и # 243; n в момент записывания файла и функции и # 243;. (Dif и # 237; cil decisi и # 243; n, vot и # 233; твой ответ, но eleg и # 237; которая я parec и # 237; в м и # 225; s заверши) – Mariano 03.12.2015, 10:25

Текст, который ты написал, действительно в utf-8, и ты относишься к этому как будто он был iso-8859-1.

Ясный отпечаток состоит в том, что появляются 2 байт из-за ударного символа.

echo "á é í ó ú Á É Í Ó Ú ñ Ñ" | iconv -f iso-8859-1 -t utf-8 
á é í ó ú à à à à à ñ Ã

Для XML, рекомендуемо использовать utf-8. Спецификация XML вынуждает давать опору в utf-8 (и в utf-16, но я рекомендовал бы использовать utf-8 предпочтительно).

5
ответ дан 24.11.2019, 15:08
  • 1
    @Mariano Dif и # 237; cilmente, это codificaci и # 243; n очень распространенная. – Konamiman 03.12.2015, 10:17
  • 2
    +1 Хорошее использование iconv. – JosEduSol 04.12.2015, 02:38

Лучший выбор, настоял бы я, это UTF-8. Мотив состоит в том, что UTF-8 позволяет кодирование всех символов стандарта Unicode в том же документе, не прибегая к последовательностям утечки ("утечка sequences") в синтаксисе формата документа (в этом случае XML).

Второй лучший выбор - МЕЖДУНАРОДНАЯ ОРГАНИЗАЦИЯ ПО СТАНДАРТИЗАЦИИ-8859-15. Этот код - более новая ревизия старой МЕЖДУНАРОДНОЙ ОРГАНИЗАЦИИ ПО СТАНДАРТИЗАЦИИ-8859-1, с какими-то маленькими изменениями. Но между этими изменениями есть очень важный один:

  1. МЕЖДУНАРОДНАЯ ОРГАНИЗАЦИЯ ПО СТАНДАРТИЗАЦИИ-8859-15 содержит символ Евро (€).
  2. МЕЖДУНАРОДНАЯ ОРГАНИЗАЦИЯ ПО СТАНДАРТИЗАЦИИ-8859-1 обратила внимание до того, как существовал Евро, так что он не содержит символ.

И этот пример показывает, почему UTF-8 - лучший выбор. UTF-8 позволяет кодировать любой текст Unicode, международный и доминирующий стандарт, к которому он добавляются новые символы периодически. Приложение, которое он использует UTF-8, обычно не нуждается в изменениях, когда вмешиваются такие новые символы как символ Евро. И adicionalmente с UTF-8 документ может перемешивать текст, написанный на многих различных языках. С UTF-8 возможно писать просто китайский словарь / испанский, но ни МЕЖДУНАРОДНАЯ ОРГАНИЗАЦИЯ ПО СТАНДАРТИЗАЦИИ-8859-15 ни МЕЖДУНАРОДНАЯ ОРГАНИЗАЦИЯ ПО СТАНДАРТИЗАЦИИ-8859-1 не позволяют такого использования.

2
ответ дан 24.11.2019, 15:08
  • 1
    Очень хороший пример в конце концов! Описав мотив, ты пометил, что он не нуждается в последовательностях утечки... и #191; В qu и # 233; чувство не использует утечки, что другой codificaci и # 243; n s и # 237; используйте? – Mariano 06.12.2015, 09:54
  • 2
    @Mariano Утечки в cuesti и # 243; n они не принадлежат в c и # 243; я говорю символов, а в формат файла. Например в HTML и XML существуют форматы такой утечки как &#x4eba;, которые позволяют определять любой характер Unicode в документе, кодировавшем в Американском стандартном коде обмена информацией. Это, потому что авторы форматов HTML/XML предвидели необходимость относиться к символам, которые не существуют в c и # 243; я говорю использованный в документе; без такого previsi и # 243; n быть и # 237; в невозможный. Но UTF-8 позволяет писать просто " дєє" (" persona" в китайце) в документе. – Luis Casillas 07.12.2015, 21:07

В часть того, что они прокомментировали их compaГ±eros, внутри Chrome ты можешь определять ее codificaciГіn во время показывания документа:

  1. MenГє Chrome.
  2. Мас Еррамьентас.
  3. CodificaciГіn.
2
ответ дан 24.11.2019, 15:08
  • 1
    Хотя он не отвечает на вопрос, это информация крайне и #250; til, показывая c и # 243; mo упорядочивать это. – Mariano 03.12.2015, 10:07
  • 2
    Ответ и #250; til, s и # 237; но quiz и # 225; быть должным и # 237; чтобы быть комментарием. – Konamiman 03.12.2015, 10:28
  1. Для испанца рекомендуемо использовать utf8
  2. В заголовке XML нужно объявлять кодирование utf8
  3. Самое важное: Файл должен быть кодировавшим как utf8

Чтобы убеждаться в том, что файл довольно кодифицирован использовать редактор как Notepad ++ или сходно. Иногда у тебя может быть База данных в utf8, текст в utf8, заявления в utf8 и вся твоя жизнь в utf8, но если ты сохранял файл, как iso-8859-1 уже он стоил...

0
ответ дан 24.11.2019, 15:08