Истинное двухбайтовое кодирование

Существуют ли реальные двухбайтовые кодировки (DBCS)?

  • За исключением UCS-2, UTF-16, конечно.
  • Я имею в виду кодирование, которое также сохраняет ASCII как 2 байта.
  • Я имею в виду с нулевыми байтами. (00 20 - пробел)
  • Пожалуйста, сообщите, если он используется, если он устарел в стандартной / в использовании.

Тот же вопрос для 4-байтовой кодировки, существует какой-либо (не UCS-4, UTF-32)?

Благодарю.

2 ответа

Решение

Нет, нет двухбайтовых наборов символов, которые удовлетворяют вашему списку требований. Это связано с тем, что в свое время разработчики использовали 7-битный ASCII в качестве отправной точки (что хорошо для совместимости), а затем помещали дополнительные символы или многобайтовые стартовые коды в верхнюю половину 256-байтовых значений.

Аналогично для четырехбайтовых наборов символов, до того, как Unicode даже не попытался выделить более 65536 символов, не было серьезных стандартов.

Например, китайский Big5 использует определения ASCII для байтов от 0x00 до 0x7F, использует от 0x81 до 0xFF в качестве начального байта для расширенных символов и от {0x40 до 0x7E, от 0xA1 до 0xFE} для второго байта. Это может кодировать максимум 20067 различных символов.

Конечно, существуют устаревшие наборы символов, в которых для каждого символа используется ровно два байта, но обычно они вообще не кодируют символы ASCII, поскольку предназначены для дополнения однобайтового набора символов, а не для его замены. Все те, о которых я знаю, существуют для поддержки китайских, японских и / или корейских иероглифов.

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

Если вы пытаетесь определить, может ли ваше программное обеспечение игнорировать существование многобайтовых кодировок символов, отличных от UTF, то, боюсь, вы не ответите простым ответом. Конечно, ваше программное обеспечение может делать это в том же смысле, в котором оно может игнорировать однобайтовые кодировки, отличные от ISO-8859-15, но только вы можете определить, будет ли ваша программа адекватно выполнять свои функции, если она это сделает.

Другие вопросы по тегам