Big-5 или Big5 ( китайский :大五碼) — это метод кодирования китайских символов , используемый в Тайване , Гонконге и Макао для традиционных китайских символов .
Китайская Народная Республика (КНР) , где используются упрощенные китайские символы , вместо этого использует набор символов GB 18030 .
Big5 получила свое название от консорциума пяти тайваньских компаний, которые ее разработали. [2]
Исходный набор символов Big5 сортируется сначала по частоте использования, затем по количеству штрихов и, наконец, по радикалу Канси .
В исходном наборе символов Big5 не хватало многих часто используемых символов. Чтобы решить эту проблему, каждый поставщик разработал собственное расширение. Расширение ETen стало частью текущего стандарта Big5 благодаря своей популярности .
Структура Big5 не соответствует стандарту ISO 2022 , а скорее имеет определенное сходство с кодировкой Shift JIS . Это двухбайтовый набор символов (DBCS) следующей структуры:
(префикс 0x означает шестнадцатеричные числа).
Стандартные назначения (за исключением расширений, определяемых поставщиком или пользователем) не используют байты с 0x7F по 0xA0 и 0xFF ни в качестве ведущих (первых), ни в качестве завершающих (вторых) байтов. Байты от 0xA1 до 0xFE используются как для начальных, так и для конечных байтов двухбайтовых кодов (Big5). Байты с 0x40 по 0x7E используются как следящие байты, следующие за ведущим байтом, или в противном случае для однобайтовых кодов. Если второй байт не находится ни в одном из диапазонов, поведение не определено (т. е. варьируется от системы к системе). Кроме того, некоторые варианты набора символов Big5, например HKSCS , используют расширенный диапазон для ведущего байта, включая значения в диапазоне от 0x81 до 0xA0 (аналогично Shift JIS ), тогда как другие используют сокращенные диапазоны ведущего байта (например, вариант Apple Macintosh использует от 0xFD до 0xFF в качестве однобайтовых кодов, ограничивая диапазон ведущих байтов от 0xA1 до 0xFC ). [3]
Числовое значение отдельных кодов Big5 часто задается в виде 4-значного шестнадцатеричного числа, которое описывает два байта, составляющие код Big5, как если бы эти два байта были представлением с прямым порядком байтов 16-битного числа. Например, код Big5 для пространства полной ширины, которым являются байты 0xa1 0x40 , обычно записывается как 0xa140 или просто A140.
Строго говоря, кодировка Big5 содержит только символы DBCS. Однако на практике коды Big5 всегда используются вместе с неопределенным, зависящим от системы однобайтовым набором символов (SBCS) (например, ASCII или кодовая страница 437 ), так что текст, закодированный Big5, содержит смесь двухбайтовых символов. символы и однобайтовые символы. Байты в диапазоне от 0x00 до 0x7f , не являющиеся частью двухбайтового символа, считаются однобайтовыми символами. (Более подробное описание этой проблемы см. в обсуждении «Соответствующий SBCS» ниже.)
Значение одиночных байтов, отличных от ASCII, за пределами разрешенных значений, которые не являются частью двухбайтового символа, варьируется от системы к системе. В старых системах на базе MSDOS они, скорее всего, будут отображаться как 8-битные символы; в современных системах они, скорее всего, либо дадут непредсказуемые результаты, либо выдадут ошибку.
В оригинальной Big5 кодировка разделена на разные зоны:
«Графические символы» на самом деле включают знаки препинания, частичные знаки препинания (например, половину тире, половину многоточия; см. ниже), дингбаты , иностранные символы и другие специальные символы (например, презентационные формы «полной ширины», цифры для цифр Сучжоу , чжуинь фухао и т. д.)
В большинстве расширений поставщиков расширенные символы размещаются в различных зонах, зарезервированных для определяемых пользователем символов, каждая из которых обычно считается связанной с предыдущей зоной. Например, ожидается, что дополнительные «графические символы» (например, знаки препинания) будут помещены в диапазон 0xa3c0 – 0xa3fe , а дополнительные логограммы будут размещены либо в диапазоне 0xc6a1 – 0xc8fe , либо в диапазоне 0xf9d6 – 0xfefe . Иногда это невозможно из-за большого количества добавляемых расширенных символов; например, кириллические буквы и японская кана помещены в зону, связанную с «часто используемыми символами».
Big5 закодировал два повторяющихся символа: «兀» в 0xA461 (U+5140) и 0xC94A (U+FA0C), «嗀» в 0xDCD1 (U+55C0) и 0xDDFC (U+FA0D).
Некоторые сопоставления кодирования также сопоставляют три цифры Сучжоу, «〸», «〹» и «〺», в графическом разделе с символами иероглифов (U + 5341, U + 5344 и U + 5345 соответственно) [4] [5 ] вместо этого . символов и пунктуации CJK (U+3038, U+3039 и U+303A соответственно). [6] [7]
Отдельный код Big5 не всегда представляет собой полную семантическую единицу. Коды логотипов Big5 всегда являются логограммами, но коды в разделе «графические символы» не всегда являются полными «графическими символами». Big5 кодирует определенные графические представления символов или частей символов, которые помещаются в пространство, занимаемое двумя моноширинными символами ASCII. Это свойство двухбайтовых наборов символов CJK , а не уникальная проблема Big5.
(Вышеизложенное, возможно, нуждается в некотором объяснении, если рассматривать его в исторической перспективе, поскольку оно теоретически неверно: раньше, когда текстовый режим персональных компьютеров все еще был нормой, символы обычно представлялись как отдельные байты, и каждый символ занимал одну позицию на экране. Было Таким образом, есть практическая причина настаивать на том, чтобы двухбайтовые символы занимали две позиции на экране, а именно, что готовое программное обеспечение американского производства можно было бы использовать без изменений в системе на основе DBCS. произвольное количество позиций экрана, программное обеспечение, которое предполагает, что один байт текста занимает одну позицию экрана, будет давать неправильный вывод.Конечно, если бы компьютеру никогда не приходилось иметь дело с текстовым экраном, производитель не стал бы применять это искусственное ограничение; Apple Примером может служить Macintosh. Тем не менее, сама кодировка должна быть разработана так, чтобы она корректно работала в системах с текстовым экраном.)
Чтобы проиллюстрировать это, рассмотрим код Big5 0xa14b (…). Для носителей английского языка это выглядит как многоточие, и стандарт Unicode определяет его как таковое; однако в китайском языке многоточие состоит из шести точек, которые помещаются в пространство двух китайских иероглифов (……), поэтому на самом деле для китайского многоточия не существует кода Big5, а код Big5 0xa14b представляет собой просто половину китайского многоточия. . Он представляет собой только половину многоточия, поскольку весь многоточие должно занимать место двух китайских иероглифов, а во многих системах DBCS один символ DBCS должен занимать ровно место одного китайского иероглифа.
Символы, закодированные в Big5, не всегда представляют собой вещи, которые можно легко использовать в текстовых файлах; примером является «знак цитирования» ( 0xa1ca , ﹋), который при использовании необходимо набирать под заголовком литературного произведения. Другим примером являются цифры Сучжоу, которые представляют собой форму научной записи , которая требует, чтобы число было представлено в двумерной форме, состоящей как минимум из двух строк.
На практике Big5 нельзя использовать без соответствующего SBCS; в основном это связано с причинами совместимости. Однако, как и в случае с другими наборами символов CJK DBCS, используемый SBCS никогда не указывался. Big5 всегда определялся как DBCS, хотя при использовании он должен быть соединен с подходящим, неуказанным SBCS и, следовательно, использоваться как то, что некоторые называют MBCS ; тем не менее, Big5 сама по себе, по определению, является строго DBCS.
Отсутствие указания используемого SBCS означает, что используемый SBCS теоретически может варьироваться от системы к системе. В настоящее время ASCII является единственным возможным SBCS, который можно использовать. Однако в старых системах на базе DOS кодовая страница 437 с дополнительными специальными символами в области управляющего кода, включая позицию 127, была гораздо более распространенной. Тем не менее, в системе Macintosh с комплектом китайского языка или в системе Unix, на которой работает эмулятор терминала cxterm, SBCS в паре с Big5 не будет иметь кодовую страницу 437.
За пределами допустимого диапазона Big5 старые системы на базе DOS обычно интерпретировали вещи в соответствии с SBCS, который связан с Big5 в этой системе. В таких системах, например, символы от 127 до 160, скорее всего, не избегались, потому что они приводили к недопустимому значению Big5, а использовались, потому что они были бы допустимыми символами в кодовой странице 437.
Таким образом, современная характеристика Big5 как MBCS, состоящая из DBCS Big5 плюс SBCS ASCII, исторически неверна и потенциально ошибочна, поскольку выбор соответствующего SBCS был и теоретически остается совершенно независимым от используемого варианта Big5. .
Неспособность ASCII поддерживать большие наборы символов китайского, японского и корейского (CJK) заставила правительства и промышленность искать творческие решения, позволяющие отображать их языки на компьютерах. Разнообразие специальных и обычно запатентованных методов ввода привело к попыткам разработать стандартную систему. В результате кодировка Big5 была определена Институтом информационной индустрии Тайваня в 1984 году.
Название «Большая пятерка» означает признание того, что стандарт возник в результате сотрудничества пяти крупнейших ИТ-компаний Тайваня:
Big5 был быстро популяризирован на Тайване и во всем мире среди китайцев, которые использовали традиционный китайский набор символов благодаря его принятию в нескольких коммерческих пакетах программного обеспечения, в частности, в китайской системе ввода DOS E-TEN ( ETen Chinese System ). Правительство Китайской Республики объявило Big5 своим стандартом в середине 1980-х годов, поскольку к тому времени он стал фактическим стандартом использования традиционного китайского языка на компьютерах.
Оригинальная «Большая пятерка» включает только логотипы CJK из Таблиц стандартных форм общенациональных символов (4808 символов) и менее распространенных национальных символов (6343 символа), но не буквы из имен людей, топонимов, диалектов, химии , биология , японская кана. В результате многие поддерживающие программы «Большой пятерки» включают расширения для решения этих проблем.
Множество вариаций делают UTF-8 или UTF-16 более согласованной кодовой страницей для современного использования.
В китайской операционной системе ETen (倚天) добавлены следующие кодовые точки, чтобы добавить поддержку некоторых символов, присутствующих в кодовой странице IBM 5550, но отсутствующих в универсальном Big5:
0xA3C0
– 0xA3E0
: 33 управляющих символа.0xC6A1
– 0xC875
: круг 1–10, скобка 1–10, римские цифры 1–9 (i–ix), радикальные глифы CJK, японская хирагана , японская катакана , кириллические символы.0xF9D6
– 0xF9FE
: символы «碁», «銹», «恒», «裏», «墻», «粧» и «嫺», за которыми следуют 34 дополнительных полуграфических символа.В некоторых версиях ETen присутствуют дополнительные графические символы и упрощенные китайские иероглифы .
Microsoft (微軟) создала свою собственную версию расширения Big5 как кодовую страницу 950 для использования с Microsoft Windows , которая поддерживает кодовые точки F9D6-F9FE из расширений ETEN. В некоторых версиях Windows символ валюты евро сопоставляется с кодовой точкой Большой пятерки A3E1.
После установки исправления HKSCS от Microsoft поверх традиционной китайской Windows (или любой версии Windows 2000 и выше с соответствующим языковым пакетом) приложения, использующие кодовую страницу 950, автоматически используют скрытую таблицу кодовой страницы 951. Таблица поддерживает все кодовые точки HKSCS-2001, за исключением кодовых точек совместимости, указанных в стандарте. [8]
В отличие от кодовой страницы 950 Microsoft, CCSID 950 IBM состоит из однобайтовой кодовой страницы 1114 (CCSID 1114) и двухбайтовой кодовой страницы 947 (CCSID 947). [9] [10] [11] Он включает расширения ETEN для ведущих байтов 0xA3 , [12] 0xC6 , [13] [14] 0xC7 [15] и 0xC8 , [13] [16] , опуская при этом те, у которых есть ведущий байт 0xF9 ( которые включает Microsoft), вместо этого сопоставляя их с областью частного использования как определяемые пользователем символы. [13] [17] Он также включает в себя две области расширения, не относящиеся к ETEN, с байтами следа 0x81–A0 , т. е. за пределами обычного диапазона байтов следа Big5, но аналогично диапазону байтов следа Big5+: область 5 имеет ведущие байты 0xF2–F9 и содержит IBM -выбранные символы, а область 9 имеет ведущие байты 0x81–8C и является определяемой пользователем областью. [18]
IBM называет обновление знака евро своего варианта Big-5 CCSID 1370, который включает как однобайтовые ( 0x80 ), так и двухбайтовые ( 0xA3E1 ) знаки евро. [19] Он состоит из однобайтовой кодовой страницы 1114 (CCSID 5210) и двухбайтовой кодовой страницы 947 (CCSID 21427). [19] [20] [21] Для лучшей совместимости с вариантом Microsoft в IBM Db2 IBM также определяет чистую двухбайтовую кодовую страницу 1372 [22] и связанный с ней CCSID переменной ширины 1373, который соответствует кодовой странице Microsoft 950. [23]
IBM присваивает CCSID 5471 кодовой странице HKSCS-2001 Big5 (с CPGID 1374 в качестве CCSID 5470 в качестве двухбайтового компонента), [24] [25] CCSID 9567 кодовой странице HKSCS-2004 (с CPGID 1374 в качестве CCSID 9566 в качестве двухбайтовый компонент), [26] и CCSID 13663 для кодовой страницы HKSCS-2008 (с CPGID 1374 в качестве CCSID 13662 в качестве двухбайтового компонента), [27] в то время как CCSID 1375 присвоен растущей кодовой странице HKSCS, что в настоящее время эквивалентно CCSID 13663. [28]
Шрифты ChinaSea (中國海字集) [29] — это традиционные китайские шрифты, созданные ChinaSea. Шрифты редко продаются отдельно, но идут в комплекте с другими продуктами, например, с китайской версией Microsoft Office 97 . Шрифты поддерживают японские кана, кокудзи и другие символы, отсутствующие в Big-5. В результате расширения ChinaSea стали более популярными, чем расширения, поддерживаемые правительством. [ на момент? ] Некоторые BBS в Гонконге использовали кодировки шрифтов ChinaSea до появления HKSCS.
Шрифт «Sakura» (日和字集 Sakura Version) разработан в Гонконге и совместим с HKSCS. Он добавляет поддержку кокудзи и собственных дингбатов (включая Doraemon ), которых нет в HKSCS.
Unicode-at-on (Unicode補完計畫), ранее называвшееся расширением BIG5, расширяет BIG-5 за счет изменения таблиц кодовых страниц, но использует расширения ChinaSea, начиная с версии 2. Однако из-за банкротства ChinaSea, позднего развития и увеличения популярности HKSCS и Unicode (проект несовместим с HKSCS), успех этого расширения в лучшем случае ограничен.
Несмотря на проблемы, символы, ранее сопоставленные с областью частного использования Unicode, переопределяются в стандартизированные эквиваленты при экспорте символов в формат Unicode.
На веб-сайтах газет Oriental Daily News и Sun Daily , принадлежащих компании Oriental Press Group Limited (東方報業集團有限公司) в Гонконге, использовался загружаемый шрифт с кодировкой расширения Big-5, отличной от HKSCS.
Министерство образования Тайваня предоставило свой собственный шрифт, шрифт Министерства образования Тайваня (臺灣教育部造字檔) для внутреннего использования.
Шрифт Совета сельского хозяйства Тайваня, Executive Yuan, представил специальный шрифт из 133 символов, шрифт Тайваньского совета сельского хозяйства (臺灣農委會常用中文外字集), который включает 84 символа из радикала рыбы и 7 символов из радикала птицы .
Китайский фонд технологий оцифровки (中文數位化技術推廣委員會) представил Big5+ в 1997 году, который использовал более 20 000 кодовых точек для включения всех логотипограмм CJK в Unicode 1.1. Однако дополнительные кодовые точки превышали исходное определение Big-5 (Big5+ использует значения старших байтов 81-FE и значения младших байтов 40-7E и 80-FE), что не позволяло его установить в Microsoft Windows без новых файлов кодовой страницы.
Чтобы позволить пользователям Windows использовать собственные шрифты, Китайский фонд технологий оцифровки представил Big-5E, который добавил 3954 символа (в трех блоках кодовых точек: 8E40-A0FE, 8140-86DF, 86E0-875C) и удалил японскую кану из расширение ETEN. В отличие от «Большой пятерки+», Big5E расширяет «Большую пятерку» в ее первоначальном определении. Mac OS X 10.3 и более поздние версии поддерживают Big-5E в шрифтах LiHei Pro (儷黑 Pro.ttf) и LiSong Pro (儷宋 Pro.ttf).
Китайский фонд технологий оцифровки разработал определение «большой пятерки» и включил его в CNS 11643 в виде примечаний, сделав его частью официального стандарта на Тайване.
Big5-2003 включает в себя все символы Big-5, представленные в расширениях ETEN 1984 года (кодовые точки A3C0-A3E0, C6A1-C7F2 и F9D6-F9FE), а также символ евро. Кириллические символы не были включены, поскольку власти заявили, что CNS 11643 не включает такие символы.
В конце 1990-х годов Academia Sinica создала китайский шрифт Data Processing (漢字構形資料庫), последняя версия которого 2.5 включала 112 533 символа, что немного меньше, чем шрифты Mojikyo .
Гонконг также принял Big5 для кодировки символов. Однако письменный кантонский диалект имеет свои собственные символы, недоступные в обычном наборе символов Big5. Чтобы решить эту проблему, правительство Гонконга создало правительственный набор китайских символов (GCCS) расширений Big5 в 1995 году и дополнительный набор символов Гонконга в 1999 году. Расширения Гонконга обычно распространялись в виде патчей. Microsoft по-прежнему распространяется в виде патча, но полный шрифт Unicode также доступен на веб-сайте правительства Гонконга.
Существует две схемы кодирования HKSCS: одна схема кодирования соответствует стандарту кодирования Big-5, а другая — стандарту ISO 10646 . После первоначальной версии существуют также HKSCS-2001 и HKSCS-2004. HKSCS-2004 технически соответствует стандарту ISO/IEC 10646:2003 и поправке 1 к нему, опубликованному в апреле 2004 года Международной организацией по стандартизации (ISO).
HKSCS включает все символы из общего расширения ETen, а также некоторые символы упрощенного китайского языка, географические названия, имена людей и кантонские фразы (включая ненормативную лексику ).
По состоянию на 2020 год [update]последней редакцией HKSCS является HKSCS-2016; однако последней редакцией HKSCS, кодирующей все символы в Big5, была HKSCS-2008, тогда как символы, добавленные в более поздних редакциях, сопоставляются только с ISO 10646 / Unicode (как расширение горизонтального глифа CJK Unified Ideographs, где это необходимо). [30] Кроме того, аналогично ситуации в Гонконге, есть также символы, которые необходимы Макао, но не включены ни в Big5, ни в HKSCS, поэтому был разработан дополнительный набор символов Макао , включающий символы, которых нет в Big5 или HKSCS; однако это также не закодировано в Big5. Первая партия из 121 символа MSCS была представлена для включения или сопоставления с Unicode в 2009 году [31] , а первая окончательная версия MSCS была создана в 2020 году. [30]
Существует две основные раскладки расширений Big5 для кодирования каны, русской кириллицы и маркеров списков в диапазоне от 0xC6A1 до 0xC875. Они не совместимы друг с другом. [32] Их сравнение приведено в таблице ниже.
Раскладка каны и кириллицы ETEN также используется вариантами HKSCS [33] (включая HTML5 ) [34] и Unicode-At-On [35] , а также версией кодовой страницы 950 от IBM, [36] [ 37 ]. ] [38] и раскладка каны ETEN (без кириллицы) также используется в варианте Big5-2003. [39] Опубликованные файлы сопоставления для Windows-950 не содержат ни того, ни другого, и этот диапазон Big5 сопоставляется с областью частного использования реализацией Windows-950 из International Components for Unicode . [40] Реализация встроенного кодека Pythoncp950
использует макет BIG5.TXT. [41] Классическая версия Mac OS не содержит макета. [3]