Что такое кодирование в XML? - PullRequest
6 голосов
/ 14 апреля 2011

Что такое кодировка в XML? Нормальная кодировка используется utf-8. Чем он отличается от других кодировок? Какова цель его использования?

Ответы [ 4 ]

9 голосов
/ 14 апреля 2011

A кодировка символов указывает, как символы отображаются в байтах. Поскольку документы XML хранятся и передаются в виде потоков байтов, это необходимо для представления символов Юникода, составляющих документ XML.

UTF-8 выбран по умолчанию, поскольку он имеет несколько преимуществ:

  • он совместим с ASCII в том смысле, что весь действительный текст в кодировке ASCII также действителен в кодировке UTF-8 (но не обязательно наоборот!)
  • он использует только 1 байт на символ для "общих" букв (тех, которые также существуют в ASCII)
  • может представлять все существующие символы Unicode

Кодировки символов - это более общая тема, чем просто XML. UTF-8 не ограничен использованием только в XML.

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

4 голосов
/ 14 апреля 2011

Когда компьютеры создавались впервые, они в основном работали только с символами на английском языке, что привело к 7-битному стандарту US-ASCII.

Однако в мире существует множество различных письменных языков, и необходимо было найти способы их использования на компьютерах.

Первый способ работает хорошо, если вы ограничиваете себя определенным языком, это использование специфичной для данной культуры кодировки, такой как ISO-8859-1, которая способна представлять символы латино-европейского языка в 8-битном формате, или GB2312 для китайских иероглифов.

Второй способ немного сложнее, но теоретически позволяет представлять каждый символ в мире, это стандарт Unicode, в котором каждый символ каждого языка имеет определенный код. Однако, учитывая большое количество существующих символов (109 000 в Unicode 5), символы Unicode обычно представляются с использованием трехбайтового представления (один байт для плоскости Unicode и два байта для кода символа.

Чтобы максимизировать совместимость с существующим кодом (некоторые все еще используют текст в ASCII), стандартная кодировка UTF-8 была разработана как способ хранения символов Unicode, только используя минимальный объем пространства, как описано в Joachim Sauer ответить.

Таким образом, часто можно увидеть файлы, закодированные с помощью определенных кодировок, таких как ISO-8859-1, если файл предназначен для редактирования или чтения только программным обеспечением (и людьми), понимающими только эти языки, и UTF-8, когда есть должны быть в высшей степени совместимы и независимы от культуры. В настоящее время UTF-8 предпочитает заменять другие кодировки, даже если он требует работы со стороны разработчиков программного обеспечения, поскольку строки UTF-8 сложнее обрабатывать, чем строки кодовых строк фиксированной ширины.

2 голосов
/ 14 апреля 2011

XML-документы могут содержать символы, отличные от ASCII, такие как норвежские буквы или французские буквы.Поэтому, чтобы избежать ошибок, вы устанавливаете кодировку или сохраняете файл XML как Unicode.

Правила кодирования XML

1 голос
/ 14 апреля 2011

Когда данные хранятся или передаются, это только байты.Эти байты нуждаются в некоторой интерпретации.Пользователи с неанглийскими локалями имели проблемы с символами, которые появлялись только в их локали.Эти символы часто отображались неверно.

Если у XML есть информация о том, как интерпретировать его байтовые символы, то они могут отображаться правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...