IsoCodes — библиотека для проверки кодов ISO


Содержание

Как установить r-cran-isocodes в Ubuntu / Debian

Установка:

Для установки r-cran-isocodes в Ubuntu / Linux Mint / Debian, введите в Терминал :

Подробная информация о пакете:

Пакет GNU R, содержащий таблицы для нескольких ISO-кодов

Этот пакет R предоставляет коды языка ISO 639, коды территорий ISO 3166, коды кодов ISO 4217, коды сценариев ISO 15924 и коды символов ISO 8859, а также коды регионов ООН M.49.

Зависимости:

GNU R ядро ​​статистической вычислительной и графической системы

mlj/iso-codes

A comprehensive database of ISO language and script codes for Ruby.

A comprehensive database of ISO language codes and ISO script codes for Ruby.

Language codes can be looked up using find_language :

ISO 639-3 defines language identifiers that covers a set of other language identifiers. For example, the identifier lav for Latvian corresponds to lvs for Standard Latvian and ltg for Latgalian. These identifiers are called [macrolanguages] 1 and can be looked up in the same way as other language codes:

The individual languages covered by the identifier can be listed:

For an individual language the macrolanguage, if any, can be found.

IsoCodes 0,0

PHP library — Validators for standards from ISO, International Finance, Public Administrations, GS1, Book Industry, Phone numbers & Zipcodes for many countries

IsoCodes

PHP library — Validators for standards from ISO, International Finance, Public Administrations, GS1, Book Industry, Phone numbers & Zipcodes for many countries

Usage

ISO Codes Validations available:

International Finance

  • IBAN
  • SWIFT/BIC
  • BBAN (RIB),
  • Credit Card number
  • SEDOL (Stock Exchange codes)

Book / Music Industries

  • ISBN — International Standard Book Number, both 10 & 13 digits
  • ISMN — International Standard Music Number
  • ISWC — International Standard Musical Work Code

Public Administrations

  • ISIN — International Securities Identification Number
  • European VAT / tax system: various VAT number formats
  • France: Numéro de Sécurité Sociale / INSEE, SIREN, SIRET, Codes postaux, Clef Type 1/2 Norme B2
  • US: Social Security number
  • UK: National Insurance Number (NINO)
  • Belgium: Structured Ccommunication («communication structurée»)
  • Spain: NIF, NIE (Número de Identificación Fiscal/Extranjero) & CIF (Código de identificación fiscal)
  • Netherlands: Burgerservicenummer / Citizen Service Number (BSN)

GS1 specific numbers/identifiers

  • GTIN — Global Trade Item Number: GTIN-8, GTIN-12, GTIN-13, GTIN-14
  • GLN — Global Location Number
  • SSCC — Serial Shipping Container Code
  • GRAI — Global Returnable Asset Identifier
  • GSRN — Global Service Relation Number

  • GDTI — Global Document Type Identifier
  • UDI — Unique Device Identification (the GTIN part of it)
  • Older/deprecated identifiers, now in GTIN: EAN-8, EAN-13, UCC-13, UPC-A, DUN-14, ITF-14

Miscellaneous

  • ZIP code validators for 175+ countries
  • Phone number validation for all countries/regions of the world

Each code has its own validator. Each validator is illustrated by a unit test case.

IsoCodes is compatible with all versions of PHP that are actively supported by the PHP project, plus hhvm.

Build status

Continously inspecting results (phpdoc, phpmd, phpcc, etc.) available on Scrutinizer CI

Requirements

PHP is required to be compiled with «—enable-bcmath» for some arbitrary precision mathematic checks (IBAN & BBAN ISO-codes). Usually, you already have bcmath bundled in your PHP version, since many common PHP packages ( php-cli , php-fpm , php5-cgi , libapache2-mod-php5 , etc.) in stable GNU/Linux distribution releases (such as Debian) are listed as having bcmath built in to them, as an included module.

Installing

Via GitHub

Autoloading is PSR-0 friendly.

Via Packagist & Composer

Require the latest version of ronanguilloux/isocodes with Composer

Wrappers

With Symfony Validator

Install Soullivaneuh/IsoCodesValidator to get IsoCodes working as Validator for Symfony and Silex.

With CakePHP 3

Install gourmet/validation to get IsoCodes working with CakePHP 3 as a validator.

With Laravel

Install pixelpeter/laravel5-isocodes-validation to get IsoCodes working with Laravel 5 as a validator.

Unit testing

Make utilities

For development & contribution purpose only, a Makefile provides various tools to check your code style, quality & test coverage:

Quality assurance report

Isocodes quality plan is mainly based on phpunit: it runs 980+ unit tests, with separated valid & invalid entry sets. Test values are mainly real data or documented examples from standard documentation, and a few handmade values.

The composer.json already includes these Php Quality Assurance Toolchain libraries:

XML report outputs are then generated in a new ./build folder

License Information

  • GNU GPL v3
  • You can find a copy of this software here: https://github.com/ronanguilloux/IsoCodes

Contributing Code

Special thanks

Many thanks to JetBrains PhpStorm for having sponsored the IsoCode library development from the very beginning! Any contributor having an accepted PR may receive an Open Source License Key for PhpStorm IDE. Just ping Ronan via email to get one.

awesome-php

A curated list of amazingly awesome PHP libraries, resources and shiny things. .

awesome-php

收集整理一些常用的PHP类库, 资源以及技巧. 以便在工作中迅速的查找所需. .

awesome-cakephp

A curated list of amazingly awesome CakePHP plugins, resources and shiny things. .

Расширения для VS Code и программирование на JavaScript

Одно из важнейших условий для продуктивной работы веб-программиста — хорошо настроенный редактор кода. Один из них — опенсорсный универсальный редактор Visual Studio Code, который замечателен не только тем, что он бесплатен, но и тем, как много полезного он умеет сразу после установки и минимальной настройки. Если речь идёт о том, чтобы использовать VS Code в какой-то конкретной сфере, вроде разработки на JavaScript, обычно стоит дополнить его несколькими расширениями, которые повышают производительность труда и упрощают жизнь программиста. Вокруг VS Code сложилось активное сообщество разработчиков расширений. Эти расширения легко искать и ещё легче устанавливать.

В материале, перевод которого мы сегодня публикуем, речь пойдёт о расширениях для VS Code, которые пригодятся тем, кто пишет на JS. Тут стоит отметить, что в деле выбора расширений для VS Code немалую роль играют личные предпочтения программиста. В результате можно сказать, что расширения, о которых пойдёт здесь речь, не являются абсолютно необходимыми. Не стоит рассматривать их как нечто, что обязательно нужно устанавливать и использовать. Обзавестись тем или иным расширением стоит лишь в том случае, если вам оно понравилось, и вы полагаете, что вам оно точно пригодится.


Расширения, которые обязательно стоит попробовать

В этом разделе мы поговорим о расширениях для VS Code, которые настолько хороши, что разработчикам редактора стоило бы встроить их в него.

▍ESLint — линтер

ESLint — это JavaScript-линтер, который чрезвычайно широко используется и поддаётся тонкой настройке. В частности, его можно сконфигурировать для поддержки большинства широко используемых фреймворков и стилей программирования. Реализация ESLint для VS Code не требует ручного запуска проверок. Вместо этого сообщения об ошибках выводятся прямо в редакторе, там же предлагаются и средства, которые позволяют быстро исправлять ошибки.

Применение ESLint в VS Code

Возможно, сейчас вы подумаете о том, что ESLint в VS Code — это, возможно, излишество, так как там уже имеется встроенная система IntelliSense, которая выдаёт отличные подсказки в ходе работы. IntelliSense, и правда, замечательно делает своё дело, но как быть, если не все в вашем проекте используют VS Code? А что делать, если вам нужны разные настройки, скажем — для JSX, для некоей конкретной версии чистого JS, который планируется выполнять в браузере, для среды Node.js, которая используется на сервере? Во всех этих случаях можно воспользоваться ESLint. Кроме того, ESLint можно встроить в систему проверки кода для запуска его перед отправкой материалов в репозиторий, для того, чтобы лишний раз убедиться в том, что все, кто коммитят в репозиторий, придерживаются единого стиля кодирования.

▍GitLens — работа с Git

VS Code, сразу после установки, содержит средства для работы с Git, поэтому расширение GitLens, о котором мы сейчас поговорим, относится больше к улучшению имеющихся возможностей редактора, чем к добавлению в него чего-то принципиально нового. На самом деле, существует множество подобных расширений, предназначенных для работы с Git.

Использование GitLens в VS Code

Однако, GitLens выгодно отличается от других похожих инструментов большим и активным сообществом, а также широчайшими возможностями настройки. Это, в частности, позволяет влиять на объём справочных данных, присутствующих редакторе. Скажем, фрагменты кода можно сравнивать, развернув пару панелей так, что они займут всё пространство окна, а, при необходимости, можно ограничиться небольшой подсказкой, выводимой в строке состояния.

Краткие сведения о коде, выводимые GitLens

Расширение GitLens особенно полезно при работе над большими проектами, когда разработчик не может точно знать о том, кто именно написал тот или иной фрагмент кода. Благодаря GitLens сведения об авторе конкретной строки выводятся в строке состояния VS Code. В результате, если у программиста возникает вопрос о том, почему или как что-то сделано, он может обратиться непосредственно к тому, кто написал интересующий его код, что упрощает общение в команде.

Тут я хочу дать одну рекомендацию, которая заключается в добавлении следующей строки в настройки VS Code.

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

▍TODO Highlight — подсветка важных комментариев

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

Расширение TODO Highlight в VS Code

Благодаря расширению TODO Highlight, если в комментарии содержится слово TODO или FIXME , оно будет автоматически выделено, что точно не даст такой комментарий пропустить. Это очень удобно.

▍Import Cost — сведения о размере импортируемых модулей

Import Cost — отличный плагин, который подойдёт тем программистам, которые склонны к самоистязанию. Всякий раз, когда вы импортируете в свой проект очередной модуль, Import Cost сообщает вам о его размере.

Использование расширения Import Cost в VS Code

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

Полезные расширения, которые могут пригодиться

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

▍Prettier — средство для форматирования кода

Расширение Prettier родственно вышерассмотренному ESLint в том плане, что его целью является обеспечение применения стандартизированного стиля кодирования. Благодаря Prettier код можно форматировать прямо в редакторе. Фундаментальная разница между Prettier и ESLint заключается в том, что вместо того, чтобы выводить сведения об ошибках, как это делает ESLint (хотя в ESLint есть и параметр —fix ), Prettier даёт программисту переформатированный вариант кода, выглядящего так, как он должен выглядеть в соответствии с заданными правилами. Он отлично показывает себя и при подготовке кода к отправке в репозиторий, так как способен автоматически переформатировать код и привести его к требуемому стилю перед каждым выполнением команды git commit .

Стоит отметить, что Prettier, в основном, нацелен на форматирование кода, поэтому его использование не делает ненужным применение линтера, ответственного за качество программы. В дополнение к этому, Prettier можно интегрировать в ESLint, что позволяет, например, автоматически запускать Prettier средствами ESLint. Prettier поставляется со встроенным набором правил, однако, если ваше представление о стиле кода отличается от того, которое выражено в правилах Prettier, их вполне можно настроить.

▍Быстрое открытие страниц в браузере — расширение open in browser

Иногда, при работе над неким проектом, для просмотра страниц которого не требуется процесс сборки, может понадобиться открыть в браузере обычный HTML-файл. Раньше так делали постоянно, теперь всё иначе, но порой это может оказаться очень кстати.

Работа с расширением open in browser в VS Code

В подобных редких случаях вам пригодится расширение open in browser, благодаря которому, через контекстное меню, можно открыть страницу в браузере, заданном по умолчанию, или в каком-нибудь другом браузере, установленном в системе. В результате вам больше не придётся возиться с консолью для того, чтобы открыть единственный файл в браузере.

▍Расширение для React-разработчиков vscode-styled-components

Ранее мы рассматривали расширения, которые могут оказаться полезными для всех, кто пишет на JS. Теперь поговорим о vscode-styled-components. Это расширение имеет достаточно узкую область применения, а именно, оно предназначено для тех, кто пользуется библиотекой styled-components в React.

Работа с расширением vscode-styled-components в VS Code

Так как при работе с библиотекой styled-components используются тегированные шаблонные строки, многие средства для подсветки синтаксиса будут воспринимать соответствующие блоки кода как единое целое. Благодаря рассматриваемому расширению код будет воспринят правильно, а внутри шаблона можно будет легко различать его составные части.

▍Расширение VSCode Great Icons — иконки для редактора

Пожалуй, говоря о расширении VSCode Great Icons, достаточно сказать, что оно позволяет добавить в редактор более сотни отличных иконок для файлов.

Расширение VSCode Great Icons

▍Расширение Bookmarks — закладки

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

Работа с расширением Bookmarks

▍Тема One Monokai

У меня есть рабочая теория, которая заключается в том, что непривлекательный внешний вид, скажем, окна редактора кода, ведёт к переутомлению глаз. Я дописываю научную работу, посвящённую этому вопросу.

Цукерберг рекомендует:  Вакансии Предметы интерьера Grachevski

Тема One Monokai

Стандартная тема оформления VS Code, на самом деле, не так уж и плоха. Однако, если код приложения, на который вы смотрите целый день, без особых трудностей можно сделать хотя бы немного симпатичнее, стоит этой возможностью воспользоваться. Конечно, существует огромное количество дополнительных тем для VS Code, но One Monokai — это как раз та, которая лично мне очень и очень понравилась. Безусловно, подобные вещи очень субъективны, нельзя говорить о том, что она понравится всем или хотя бы очень многим, но вы вполне можете поискать среди тем для VS Code ту, которая подойдёт именно вам.

Итоги

В этом материале мы рассмотрели десять расширений для VS Code. Надеемся, вы найдёте среди них что-нибудь такое, что вам пригодится.

Уважаемые читатели! Пользуетесь ли вы VS Code? Если да — просим вас рассказать о том, какие расширения для этого редактора кажутся вам самыми полезными.

Пакет исходного кода: iso-codes (3.65-1)

Ссылки для iso-codes

Ресурсы Ubuntu:

Сопровождающий:


Please consider filing a bug or asking a question via Launchpad before contacting the maintainer directly.

Original Maintainers (usually from Debian):

  • Dr. Tobias Quathamer
  • Christian Perrier
  • Alastair McKinstry

It should generally not be necessary for users to contact the original maintainer.

Внешние ресурсы:

  • Сайт [pkg-isocodes.alioth.debian.org]

Другие пакеты, относящиеся к iso-codes

  • для сборки
  • build-depends-indep
  • adep: debhelper (>= 9) helper programs for debian/rules
  • idep: gettext GNU Internationalization utilities
  • idep: python interactive high-level object-oriented language (default version)

Download iso-codes

Файл Размер (в Кб) Контрольная сумма MD5
iso-codes_3.65-1.dsc 1,9 Кб 0527986bb27796ea7db6cc6c1fa57a3d
iso-codes_3.65.orig.tar.xz 3 645,0 Кб 890a08d4f962748e0a0758a8aa471896
iso-codes_3.65-1.debian.tar.xz 26,2 Кб b4e6e91244b09d77c66d91febab3632f

Репозиторий пакетов исходного кода Debian (VCS : Git) https://anonscm.debian.org/git/pkg-isocodes/pkg-iso-codes.git Репозиторий пакетов исходного кода Debian (доступен просмотр) https://anonscm.debian.org/cgit/pkg-isocodes/pkg-iso-codes.git

This page is also available in the following languages:

Авторские права © 2020 Canonical Ltd.; См. условия лицензии. Ubuntu это торговый знак компании Canonical Ltd. Об этом сайте.

IsoCodes — библиотека для проверки кодов ISO

Each code has its own validator. Each validator is illustrated by a unit test case. IsoCodes is compatible with all versions of PHP that are actively supported by the PHP project, plus hhvm.

https://github.com/ronanguilloux/IsoCodes

Tags
Implementation PHP
License GPL
Platform Windows Linux

vim-olive — Vim Mode Line Verifier

Vim Mode Line Verifier

vim-mash — Motion Activated Search Highlighter for Vim

Motion Activated Search Highlighter for Vim

vim-grillz — Flash your wicked grillz!

Flash your wicked grillz!

vim-foist — Complete whole lines from any partial therein

Complete whole lines from any partial therein

vim-efmc — Vim Error Format Compiler

Vim Error Format Compiler

uzbl-utrs — mkng uzbl tlrbl

mkng uzbl tlrbl

toycsv — A toy CSV parser written in ruby + lexr + racc

A toy CSV parser written in ruby + lexr + racc

tiktok — TikTok prov >
  • VimL
  • TikTok provides a simple asynchronous timer object for VimL.

    tabby — Using Vim’s Tabs the Right Way

    Using Vim’s Tabs the Right Way

    SohiVila — GNU source-highlight Vim language

    GNU source-highlight Vim language

    SinTax — A DSL for generating Vim syntax highlighting files


    A DSL for generating Vim syntax highlighting files

    rkdots — Generate a graphviz visualisation of the given javascript statement.

    Generate a graphviz visualisation of the given javascript statement.

    RelNumBar — Show relativenumbers alongs >
  • VimL
  • Show relativenumbers alongside normal numbers in Vim

    Punisher — Punisher hurts you where it hurts most — your time.

    Punisher hurts you where it hurts most — your time.

    noisy — Don’t chat quietly (weechat channel noises)

    Don’t chat quietly (weechat channel noises)

    IsoCodes — библиотека для проверки кодов ISO

    НАЦИОНАЛЬНЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ

    ТЕХНОЛОГИИ АВТОМАТИЧЕСКОЙ ИДЕНТИФИКАЦИИ И СБОРА ДАННЫХ

    Спецификация символики штрихового кода QR Code

    Information technology. Automatic identification and data capture techniques. QR Code bar code symbology specification

    ОКС 35.040
    01.080.50

    Дата введения 2020-02-01

    1 ПОДГОТОВЛЕН Ассоциацией автоматической идентификации «ЮНИСКАН/ГС1 РУС» совместно с Обществом с ограниченной ответственностью (ООО) НПЦ «Интелком» на основе аутентичного перевода стандарта, указанного в пункте 4, выполненного ООО НПЦ «Интелком»

    2 ВНЕСЕН Техническим комитетом по стандартизации ТК 355 «Технологии автоматической идентификации и сбора данных»

    4 Настоящий стандарт идентичен международному стандарту ИСО/МЭК 18004:2015* «Информационные технологии. Технологии автоматической идентификации и сбора данных. Спецификация символики штрихового кода QR Code» (ISO/IEC 18004:2015 «Information technology — Automatic identification and data capture techniques — QR Code bar code symbology specification»), за исключением приложения ДА, содержащего сведения о наборах знаков по ИСО/МЭК 646, ИСО/МЭК 8859-1 и ИСО/МЭК 8859-5 и приложения ДБ, содержащего сведения о соответствии ссылочных международных стандартов ссылочным национальным стандартам.
    ________________
    * Доступ к международным и зарубежным документам, упомянутым здесь и далее по тексту, можно получить, перейдя по ссылке на сайт http://shop.cntd.ru. — Примечание изготовителя базы данных.

    При применении настоящего стандарта рекомендуется использовать вместо ссылочных международных стандартов соответствующие им национальные стандарты, сведения о которых приведены в дополнительном приложении ДВ*
    ________________
    * Вероятно, ошибка оригинала. Следует читать: приложении ДБ. — Примечание изготовителя базы данных.

    5 Некоторые положения международного стандарта, указанного в пункте 4, могут являться объектами получения патентных прав. Международная организация по стандартизации (ИСО) не несет ответственности за идентификацию некоторых или всех подобных прав

    6 ВВЕДЕН ВПЕРВЫЕ

    Правила применения настоящего стандарта установлены в ГОСТ Р 1.0-2012 (раздел 8). Информация об изменениях к настоящему стандарту публикуется в ежегодном (по состоянию на 1 января текущего года) информационном указателе «Национальные стандарты», а официальный текст изменений и поправок — в ежемесячном информационном указателе «Национальные стандарты». В случае пересмотра (замены) или отмены настоящего стандарта соответствующее уведомление будет опубликовано в ближайшем выпуске информационном указателе «Национальные стандарты». Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования — на официальном сайте национального органа Российской Федерации по стандартизации в сети Интернет (www.gost.ru)

    Введение

    Необходимо различать четыре различных с технической точки зрения представителя семейства символики QR Code, которые, однако, тесно связаны друг с другом и представляют собой следующую эволюционную последовательность:

    — QR Code Model 1 — первоначальная спецификация QR Code, описание которой приведено в AIM ITS 97-001 Международная спецификация символики. QR Code (International Symbology Specification — QR Code);

    — QR Code Model 2 — расширенная форма символики с дополнительными свойствами (прежде всего дополнение символа направляющими шаблонами для более точной навигации по большим символам), которая стала основой для первой версии ИСО/МЭК 18004*);
    ________________
    * Имеется в виду ИСО/МЭК 18004:2000.

    — QR Code (основа для второй версии ИСО/МЭК 18004*) символика, в значительной степени соответствующая QR Code Model 2; отличающаяся от этого формата QR Code дополнительными параметрами для символов, представленных в зеркальном отображении инвертированного изображения (светлые символы на темном фоне), а также опциями, используемыми для определения альтернативных наборов знаков, отличающихся от набора знаков по умолчанию;
    ________________
    * Имеется в виду ИСО/МЭК 18004:2006.

    — формат Micro QR Code (установленный во второй версии ИСО/МЭК 18004), являющийся вариантом QR Code с уменьшенным числом служебных модулей и ограниченным диапазоном размеров, позволяющим представлять малые объемы данных в символах небольшого размера, особенно подходящих для прямого маркирования деталей и компонентов и для применений с ограниченным пространством для размещения символа.

    QR Code — матричная символика. Символ состоит из массива номинально квадратных модулей, структурированных в регулярную квадратную матрицу, включая уникальные шаблоны поиска, размещенные в трех углах символа (в Micro QR Code — только в одном углу) и предназначенные для упрощения определения места нахождения, размера и наклона символа. Предусмотрен широкий диапазон размеров и четыре уровня исправления ошибок. Размер символа в модулях устанавливает пользователь для обеспечения производства символов различными методами.

    Символы QR Code Model 2 полностью совместимы с системами, считывающими символы QR Code.

    Символы QR Code Model 1 рекомендуется использовать только в замкнутых применениях, и нет необходимости в поддержке формата QR Code Model 1 для оборудования, соответствующего настоящему стандарту. Поскольку символы QR Code рекомендуется в качестве образца для использования во вновь создаваемых и открытых системах применения QR Code, в настоящем стандарте приведено полное описание символов QR Code, также в приложении N приведен перечень отличий символов QR Code Model 1 от символов QR Code.

    Сноски в тексте стандарта, выделенные курсивом, приведены для пояснения текста оригинала.

    1 Область применения

    Настоящий стандарт устанавливает требования к символике QR Code , а также параметры символики, методы кодирования знаков данных, форматы символов, требования к размерам, правила исправления ошибок, рекомендуемый алгоритм декодирования, требования к качеству производства, выбираемые пользователем параметры применения.
    ________________
    Наименование символики произносится как Кюар Код; аббревитура QR расшифровывается как quick response, что в переводе на русский язык означает быстрый отклик.

    2 Соответствие

    Символы QR Code (и оборудование, предназначенное для создания или считывания символов QR Code) соответствуют требованиям настоящего стандарта, если они обеспечивают или поддерживают параметры, приведенные в настоящем стандарте.

    Символы, созданные в соответствии с требованиями QR Code Model 1 по ИСО/МЭК 18004:2006, не могут быть считаны с помощью оборудования, соответствующего настоящему стандарту.

    Символы, созданные в соответствии с требованиями QR Code Model 2 по ИСО/МЭК 18004:2000, считывают с помощью оборудования, соответствующего настоящему стандарту.

    Символы, созданные в соответствии с требованиями настоящего стандарта, не могут быть считаны с помощью оборудования по ИСО/МЭК 18004:2000. Символы, которые используют дополнительные параметры QR Code, также не могут быть считаны с помощью такого оборудования.

    Символы, созданные в соответствии с требованиями настоящего стандарта, не могут быть напечатаны с помощью оборудования, соответствующего требованиям предыдущей версии ИСО/МЭК 18004:2000. Символы, которые используют дополнительные параметры QR Code, также не могут быть напечатаны с помощью такого оборудования.

    Разновидности символики QR Code Model 2 и Micro QR Code рекомендуется использовать для открытых систем и вновь создаваемых применений.

    3 Нормативные ссылки

    В настоящем стандарте использованы нормативные ссылки на следующие стандарты и другие нормативные документы*, которые необходимо учитывать при использовании настоящего стандарта. В случае ссылок на документы, у которых указана дата утверждения, необходимо пользоваться только указанной редакцией. В случае, когда дата утверждения не приведена, следует пользоваться последней редакцией ссылочных документов, включая любые поправки и изменения к ним:
    _______________
    * Таблицу соответствия национальных стандартов международным см. по ссылке. — Примечание изготовителя базы данных.

    ИСО/МЭК 8859-1:1998 Информационные технологии. 8-битовые однобайтовые наборы кодированных графических знаков. Часть 1. Латинский алфавит N 1 (Information technology — 8-bit single-byte coded graphic character sets — Part 1: Latin alphabet No.1)
    ________________
    Набор знаков приведен в приложении ДА.

    ИСО/МЭК 15415 Информационные технологии. Технологии автоматической идентификации и сбора данных. Спецификация испытаний символов штрихового кода для оценки качества печати. Двумерные символы (Information technology — Automatic identification and data capture techniques — Bar code print quality test specification — Two-dimensional symbols)

    ИСО/МЭК 19762-1 Информационные технологии. Технологии автоматической идентификации и сбора данных (АИСД). Гармонизированный словарь. Часть 1. Общие термины, связанные с автоматической идентификацией и сбором данных (Information technology — Automatic identification and data capture (AIDC) techniques — Harmonized vocabulary — Part 1: General terms relating to AIDC)

    ИСО/МЭК 19762-2 Информационные технологии. Технологии автоматической идентификации и сбора данных (АИСД). Гармонизированный словарь. Часть 2. Оптические носители данных (ОНД) (Information technology — Automatic identification and data capture (AIDC) techniques — Harmonized vocabulary — Part 2: Optically readable media (ORM)

    JIS X 0201 7-битовые и 8-битовые наборы знаков для обмена информацией (7-bit and 8-bit coded character sets for information interchange)

    4 Термины и определения

    В настоящем стандарте применяются термины, определенные в ИСО/МЭК 19762-1, ИСО/МЭК 19762-2, а также следующие:

    4.1 индикатор числа знаков (character count indicator): Битовая последовательность, определяющая длину строки данных в текущем режиме кодирования.

    4.2 маскирование данных (data masking): Процесс применения операции XOR к комбинациям битов в области кодирования с использованием шаблонов маски, с целью образования символа со сбалансированным числом темных и светлых модулей и уменьшения вероятности присутствия комбинаций, которые могут помешать быстрой обработке изображения.

    4.3 указатель шаблона маски данных (data mask pattern reference): Трехбитовый идентификатор, указывающий шаблон маски данных, используемый в символе.

    4.4 область кодирования (encoding region): Область символа, свободная от функциональных шаблонов и предназначенная для кодирования данных и кодовых слов исправления ошибок и информации о версии и формате символа.

    4.5 исключительный поднабор (exclusive subset): Подмножество знаков в наборе знаков режима, которые не пересекаются с более ограниченным набором знаков другого режима.

    4.6 шаблон расширения (extension pattern): Функциональный шаблон в символах Model 1, не кодирующий данные.

    4.7 информация о формате (format information): Шаблон, в котором закодирована информация об основных параметрах, необходимых для обеспечения декодирования оставшейся части области кодирования.

    4.8 QR Code (QR Code): Обозначение всех символов QR Code от версии 1 до версии 40 для обеспечения возможности их отличия от символов Micro QR Code.

    4.9 функциональный шаблон (function pattern): Дополнительные компоненты символа (шаблоны поиска, разделитель, шаблоны синхронизации, направляющие шаблоны), которые требуются для уточнения места нахождения символа или определения его параметров с целью обеспечения декодирования.

    4.10 маскирование (masking): Процесс применения операции XOR к комбинации битов в какой-либо области символа с использованием шаблона маски для уменьшения комбинаций, которые могут препятствовать быстрой обработке изображения.

    4.11 микро (micro): Обозначение всех символов Micro QR Code от версии М1 до версии М4 для обеспечения возможности их отличия от символов QR Code.

    4.12 режим (mode): Способ преобразования последовательности кодируемых знаков в двоичную строку.

    4.13 индикатор режима (mode indicator): Идентификатор, состоящий из четырех битов, указывающий режим, в котором закодирована следующая за ним последовательность данных.

    4.14 бит-заполнитель (padding bit): Нулевой бит, не представляющий данные, предназначенный для заполнения оставшихся незаполненными позиций последнего кодового слова после ограничителя в двоичной строке данных.
    ________________
    Кодируемые данные пакуются в двоичный поток с точностью до бита, а алгоритмы размещения данных в символе и расчета исправления ошибок используют 8-битовые кодовые слова. Если последнее кодовое слово остается заполненным не до конца, используют биты-заполнители.

    4.15 остаточный бит (remainder bit): Нулевой бит, не представляющий данные, используемый для заполнения оставшихся незаполненными позиций в области кодирования после последнего знака символа в случае, если область кодирования, предназначенная для знаков символа, не полностью распределена для размещения 8-битовых знаков символа.

    4.16 остаточное кодовое слово (remainder codeword): Кодовое слово — заполнитель, размещаемое после кодовых слов исправления ошибок, используемое для заполнения оставшихся незаполненными позиций кодовых слов с целью доукомплектования символа, если общее число кодовых слов данных и исправления ошибок не достаточно для полного заполнения его номинальной емкости .
    ________________
    Остаточные кодовые слова добавляют после кодовых слов исправления ошибок.

    4.17 сегмент (segment): Последовательность данных, закодированная согласно правилам одной интерпретации в расширенном канале (ECI) или режима кодирования.


    4.18 разделитель (separator): Функциональный шаблон, состоящий из светлых модулей, шириной один модуль, отделяющий шаблоны поиска от остального содержимого символа.

    4.19 номер символа (symbol number): Поле из трех битов, указывающее версию символа и уровень исправления ошибок, используемое как часть информации о формате в символах Micro QR Code.

    4.20 ограничитель (terminator): Битовый шаблон, состоящий из некоторого числа (зависящего от символа) нулевых битов, используемый для индикации окончания двоичной строки, представляющей данные.

    4.21 шаблон синхронизации (timing pattern): Чередующаяся последовательность темных и светлых модулей, предназначенная для определения координат модулей в символе.

    4.22 версия (version): Размер символа в соответствии с его позицией в последовательности допустимых размеров символов; символы Micro QR Code имеют размеры (в модулях) от 11 11 (версия М1) до 17 17 (версия М4), а символы QR Code — от 21 21 (версия 1) до 177 177 (версия 40).

    Примечание — Уровень исправления ошибок, применимый к символу, может быть добавлен к обозначению версии, например, версия 4-L или версия M3-Q.

    4.23 информация о версии (version information): Шаблон, закодированный в некоторых символах QR Code, содержащий информацию о версии символа вместе с битами исправления ошибок для этих данных.

    5 Математические и логические символы, обозначения и соглашения об обозначениях

    5.1 Математические и логические символы

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

    Кроме того, в настоящем стандарте применяются следующие математические и логические операторы:

    div — оператор деления на целое число;

    mod — оператор вычисления остатка от деления на целое число;

    XOR — исключающее ИЛИ (exclusive-or) — логическая функция или операция, результатом которой является единица только в случае неэквивалентности двух входов; обозначается знаком .

    5.2 Сокращения

    ВСН — код Боуза-Чоудхури-Хоквингема (Bose-Chaudhuri-Hocquenghem);

    ECI — интерпретация в расширенном канале (Extended Channel Interpretation);

    RS — код Рида-Соломона (Reed-Solomon).

    5.3 Соглашения об обозначениях

    5.3.1 Позиции модулей

    Для упрощения ссылок позиции модулей определяют через координаты строки и столбца символа в форме (i, j), где i определяет строку (отсчет производят сверху вниз) и j — столбец (отсчет производят слева направо); отсчет начинают с 0. Таким образом, модуль (0, 0) расположен в верхнем левом углу символа.

    5.3.2 Представление байтов

    Содержимое байта представляют в его шестнадцатеричном значении.

    5.3.3 Ссылки на версии

    Для символов QR Code версию символа представляют в форме V-E, где V — обозначает номер версии (от 1 до 40), а E указывает уровень исправления ошибок (L, M, Q, H).

    Для символов Micro QR Code версию символа представляют в форме MV-E, где M указывает на символ формата Micro QR Code, а V (со значениями от 1 до 4) и E (со значениями L, M, Q) соответствуют вышеуказанному.

    Цукерберг рекомендует:  Иконки на тему Футбол

    6 Описание символов

    6.1 Основные параметры

    QR Code — это матричная символика, имеющая следующие параметры:

    1) QR Code, который обладает полным набором возможностей и максимальной емкостью для данных;

    2) Micro QR Code, который обладает уменьшенным набором возможностей, рядом ограниченных возможностей и уменьшенной емкостью для данных (по сравнению с символами QR Code);

    b) кодируемые наборы знаков:

    1) числовые данные (цифры от 0 до 9);

    2) алфавитно-цифровые данные (цифры от 0 до 9; прописные буквы от A до Z и девять специальных графических знаков: пробел, $, %, *, +, -, ., /, :);

    3) байтовые данные (по умолчанию — в соответствии с ИСО/МЭК 8859-1 или другой набор знаков , если это специально указано (см. 7.3.5));
    ________________
    В приложении ДА приведен набор знаков кирилловского алфавита по ИСО/МЭК 8859-5.

    4) знаки кандзи . Один знак кандзи в QR Code может быть уплотнен в 13 битов;
    ________________
    Кандзи (японское наименование — , английское наименование — Kanji) — иероглифическое письмо, являющееся составной частью японской письменности.

    c) представление данных:

    темный модуль, как правило, является двоичной единицей, а светлый модуль — двоичным нулем. В случаях обратимого изображения — см. 6.2;

    d) размеры символа (не включая свободную зону):

    1) символы Micro QR Code: размеры (в модулях) от 11 11 до 17 17 (версии от М1 до М4 с шагом два модуля для каждой стороны);

    2) символы QR Code: размеры (в модулях) от 21 21 до 177 177 (версии от 1 до 40 с шагом четыре модуля для каждой стороны);

    e) число знаков данных в символе:

    1) символ Micro QR Code максимального размера, версия M4-L:

    — числовые данные: 35 знаков;

    — алфавитно-цифровые данные: 21 знак;

    — данные в байтах: 15 знаков;

    — знаки кандзи: 9 знаков;

    2) символ QR Code максимального размера, версия 40-L:

    — числовые данные: 7089 знаков;

    — алфавитно-цифровые данные: 4296 знаков;

    — данные в байтах: 2953 знака;

    — знаки кандзи: 1817 знаков;

    f) выбираемый уровень исправления ошибок:

    Используют четыре уровня исправления ошибок Рида-Соломона (обозначаемые L, M, Q и H в порядке увеличения занимаемой емкости):

    — L — 7%;

    — M — 15%;

    — Q — 25%;

    — H — 30 % от числа кодовых слов символа.

    Для символов Micro QR Code уровень исправления ошибок Н не используют. Для Micro QR Code версии M1 алгоритм Рида-Соломона обеспечивает только возможность обнаружения ошибок;

    g) тип кода:

    — матричный;

    h) независимость от ориентации:

    — обеспечивается (допускается поворот на любой угол и зеркальное отображение).

    На рисунке 1 представлен символ QR Code версии 1 с типовым цветовым сочетанием, символ с инвертированным изображением представлен в 6.2, на рисунках символы приведены в обычной ориентации и в зеркальном отображении.

    На рисунке 2 представлен символ Micro QR Code версии M2 с типовым цветовым сочетанием и символ с инвертированными коэффициентами отражения (см. 6.2), на рисунках символы приведены в обычной ориентации и в зеркальном отображении.

    6.2 Дополнительные свойства

    В QR Code используются следующие дополнительные свойства, устанавливаемые по выбору:

    — структурированное соединение

    Эта опция обеспечивает возможность представления одного длинного сообщения в виде нескольких (до 16) логически связанных символов QR Code, которые могут быть отсканированы в любой последовательности с возможностью корректного восстановления исходных данных. В символах Micro QR Code структурированное соединение не допускается;

    — интерпретация в расширенном канале (ECI)

    Эта опция обеспечивает возможность использования наборов знаков, отличающихся от набора знаков по умолчанию, (например, арабского, кириллицы, греческого) и иных интерпретаций данных (например, уплотнение данных с использованием определенных схем уплотнения) или соответствия другим международным отраслевым требованиям к кодированию. В символах Micro QR Code не допускается использование ECI, отличающейся от интерпретации по умолчанию;

    — инверсия значений коэффициента отражения

    Символы, предназначенные для считывания, могут быть напечатаны так, что изображение представлено темными модулями на светлом фоне, или светлыми модулями на темном фоне (см. рисунок 1 и 2). В настоящем стандарте рассматриваются символы QR Code, представляющие собой темные модули, расположенные на светлом фоне, следовательно в случае производства символов с инвертированными значениями коэффициента отражения, положения, относящиеся к темным или светлым модулям, следует применять соответственно к светлым или темным модулям;

    — зеркальное отображение

    Расположение модулей, определенных в настоящем стандарте, представляет «нормальную» ориентацию символа. Допускается декодировать символ, в котором модули размещены в обратном порядке по горизонтали. При рассмотрении шаблонов поиска в левом верхнем, правом верхнем и левом нижнем углах символа действие зеркального отображения заключается в обмене позициями строк и столбцов модулей.

    Рисунок 1 — Примеры символов QR Code, кодирующих текст «QR Code Symbol»

    a) обычная ориентация и типовые значения коэффициентов отражения; b) обычная ориентация и инвертированные значения коэффициентов отражения; c) зеркальная ориентация изображения и типовые значения коэффициентов отражения; d) зеркальная ориентация изображения и инвертированные значения коэффициентов отражения

    Рисунок 1 — Примеры символов QR Code, кодирующих текст «QR Code Symbol»

    Рисунок 2 — Примеры символов Micro QR Code версии M2, кодирующих текст «01234567»

    a) обычная ориентация и типовые значения коэффициентов отражения; b) обычная ориентация и инвертированные значения коэффициентов отражения; c) зеркальная ориентация изображения и типовые значения коэффициентов отражения; d) зеркальная ориентация изображения и инвертированные значения коэффициентов отражения

    Рисунок 2 — Примеры символов Micro QR Code версии M2, кодирующих текст «01234567»

    Примечание — Угловые метки на рисунках 1 и 2 указывают границы свободной зоны.

    6.3 Структура символов

    6.3.1 Общие положения

    Каждый символ QR Code состоит из номинально квадратных модулей, структурированных в регулярную матрицу, и включает область кодирования и функциональные шаблоны, называемые шаблонами поиска, разделителями, шаблонами синхронизации и направляющими шаблонами. Функциональные шаблоны не содержат данных. Символ должен быть окружен со всех четырех сторон свободной зоной. На рисунке 3 представлена структура символа версии 7. На рисунке 4 представлена структура символа версии M3.

    Рисунок 3 — Структура символа QR Code версии 7

    Рисунок 3 — Структура символа QR Code версии 7

    Рисунок 4 — Структура символа Micro QR Code версии М3

    Рисунок 4 — Структура символа Micro QR Code версии М3

    6.3.2 Версии и размеры символов


    6.3.2.1 Символы QR Code

    Существует 40 возможных вариантов размера символа QR Code, обозначаемых как версия 1, версия 2, . , версия 40. Версия 1 имеет размеры (в модулях) 21 21, версия 2 — 25 25 и так далее с шагом 4 модуля вплоть до версии 40, которая имеет размер (в модулях) 177 177. На рисунках 5-10 представлены структуры символов версий 1, 2, 6, 7, 14, 21 и 40.

    Рисунок 5 — Символы версий 1 и 2

    Рисунок 5 — Символы версий 1 и 2

    Рисунок 6 — Символ версии 6

    Рисунок 6 — Символ версии 6

    Рисунок 7 — Символ версии 7

    Рисунок 7 — Символ версии 7

    Рисунок 8 — Символ версии 14

    Рисунок 8 — Символ версии 14

    Рисунок 9 — Символ версии 21

    Рисунок 9 — Символ версии 21

    Рисунок 10 — Символ версии 40

    Рисунок 10 — Символ версии 40

    6.3.2.2 Символы Micro QR Code

    Символы Micro QR Code могут иметь четыре размера, обозначаемые как версии с M1 по M4. Версия M1 имеет размеры (в модулях) 11 11, версия M2 (в модулях) — 13 13, версия M3 (в модулях) — 15 15, версия M4 (в модулях) -17 17, т.е. с шагом 2 модуля по каждой стороне. На рисунке 11 представлена структура символов Micro QR Code версий с M1 по M4.

    Примечание — Представлены два формата символа M3, отличающиеся только размещением кодовых слов согласно уровню исправления ошибок.

    Рисунок 11 — Версии символов Micro QR Code

    Рисунок 11 — Версии символов Micro QR Code

    6.3.3.1 Символы QR Code

    Имеются три одинаковых шаблона поиска, размещенных в левом верхнем, правом верхнем и левом нижнем углах символа, как показано на рисунке 3. Каждый шаблон поиска выглядит как три вложенных друг в друга квадрата: темного размерами (в модулях) 7 7, светлого размерами (в модулях) 5 5 и темного размерами (в модулях) 3 3. Размеры в модулях в любом шаблоне поиска находятся в соотношении 1:1:3:1:1, как показано на рисунке 12. Представление кодируемых данных должно быть таким чтобы, что вероятность встретить такой шаблон среди кодируемых данных была очень мала, что позволяет быстро определить присутствие символа QR Code в поле обзора. Идентификация трех шаблонов, составляющих шаблон поиска, позволяет определить место нахождения и угловую ориентацию символа в поле обзора.

    6.3.3.2 Символы Micro QR Code

    Единственный шаблон поиска по 6.3.3.1 расположен в верхнем левом углу символа, как показано на рисунке 4. Идентификация шаблона поиска вместе с шаблонами синхронизации однозначно определяет размер, положение и угловую ориентацию символа в поле обзора.

    Рисунок 12 — Структура шаблона поиска

    Рисунок 12 — Структура шаблона поиска

    6.3.4 Разделитель

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

    6.3.5 Шаблон синхронизации

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

    В символах QR Code горизонтальный шаблон синхронизации проходит по шестой строке символа между разделителями верхнего левого и верхнего правого шаблона поиска символа; вертикальный шаблон синхронизации проходит по шестому столбцу между разделителями верхнего левого и нижнего левого шаблона поиска символа, как показано на рисунке 3.

    В символах Micro QR Code горизонтальный шаблон синхронизации проходит по нулевой строке символа от правого разделителя до правого края символа; вертикальный шаблон синхронизации проходит по нулевому столбцу символа от нижнего разделителя до нижнего края символа, как показано на рисунке 4.

    6.3.6 Направляющие шаблоны

    Направляющие шаблоны присутствуют только в символах QR Code версии 2 или версии с большим номером. Каждый шаблон представляет собой суперпозицию трех вложенных друг в друга квадратов и состоит из темного квадрата размерами (в модулях) 5 5, светлого размерами (в модулях) 3 3 и единственного темного модуля в центре. Число направляющих шаблонов зависит от версии символа и шаблоны должны присутствовать во всех символах, начиная с версии 2 и версии с большим номером, в позициях, установленных в приложении Е.

    6.3.7 Область кодирования

    Эта область содержит знаки символа, представляющие данные, кодовые слова исправления ошибок, информацию о формате и версии. Подробные требования к знакам символа приведены в 7.7.1, к информации о формате — в 7.9, к информации о версии — в 7.10.

    6.3.8 Свободная зона

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

    Для символов QR Code ширина свободной зоны должна быть равна 4Х.

    Для символов Micro QR Code ширина свободной зоны должна быть равна 2Х.

    7 Требования

    7.1 Основные положения процедуры кодирования

    В настоящем разделе описан процесс преобразования входных данных в символ QR Code.

    Этап 1. Анализ данных

    Анализируют входной поток данных, чтобы установить различия входящих в него знаков, которые нужно закодировать. Формат QR Code (не Micro QR Code) поддерживает интерпретацию в расширенном канале, допуская для кодирования данные, отличающиеся от заданного по умолчанию набора знаков. QR Code может включать в себя несколько режимов (см. 7.3), которые позволяют эффективно преобразовывать различные поднаборы знаков в знаки символа. По мере необходимости между режимами вставляют переключения для достижения наиболее эффективного преобразования данных в двоичную строку. Выбирают требуемый уровень обнаружения и исправления ошибок. Если пользователь не определил версию символа, которую нужно использовать, выбирают версию символа с наименьшим значением, которая допускает размещение данных. Полный перечень версий символа и соответствующих им емкостей приведен в таблице 1.

    Этап 2. Кодирование данных

    Знаки данных преобразуют в двоичный поток в соответствии с правилами, установленными для действующего режима по 7.4.2-7.4.6. При необходимости смены режима вставляют индикаторы режима в начале каждого нового сегмента, а в конце данных вставляют ограничитель. Преобразуют результирующий двоичный поток в последовательность 8-битовых кодовых слов. Добавляют необходимое число знаков-заполнителей для образования требуемого числа кодовых слов в соответствии с выбранной версией символа.

    Этап 3. Кодирование исправления ошибок

    Последовательность кодовых слов делят на требуемое число блоков (согласно таблице 9), чтобы обеспечить возможность обработки алгоритмами исправления ошибок. Для каждого блока формируют кодовые слова исправления ошибок, добавляя кодовые слова исправления ошибок в конец последовательности кодовых слов данных.

    Этап 4. Структура завершенного сообщения

    Кодовые слова данных чередуют с кодовыми словами исправления ошибок от каждого блока согласно в 7.6 (этап 3) и добавляют остаточные биты, если это необходимо.

    Этап 5. Размещение модулей в матрице

    Модули кодовых слов размещают в матрице вместе с шаблоном поиска, разделителями, шаблонами синхронизации и направляющими шаблонами.

    Этап 6. Маскирование данных

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

    Этап 7. Информация о формате и версии

    Формируют информацию о формате и, при необходимости, о версии, после чего завершают создание символа.

    Таблица 1 — Емкость кодовых слов для всех версий QR Code

    Число модулей/
    сторона (A)

    Число модулей в функциональных шаблонах (B)

    Число модулей в информации о версии (C)

    Оставшиеся модули для данных (D) (D=A -B-C)

    Объем данных (кодовых слов (E)

    Все кодовые слова имеют размер 8 битов, за исключением версий M1 и M3, где финальное кодовое слово имеет размер 4 бита.

    В ИСО/МЭК 18004 ошибочно указано C.

    7.2 Анализ данных

    Анализируют строку входных данных с целью определения ее содержания и выбирают установленную по умолчанию или другую соответствующую ECI и соответствующий режим, чтобы закодировать каждую последовательность знаков в соответствии с 7.4. Каждый режим последовательно от числового до режима кандзи требует большего числа битов на знак. Допускается переключение с режима на другой в пределах символа с целью уменьшить длину выходного потока данных, некоторые части которых могут более эффективно кодироваться в одном режиме, в отличие от других частей, например числовые последовательности, сопровождаемые алфавитно-цифровыми последовательностями. Теоретически наиболее эффективно кодировать данные в режиме, требующем наименьшего числа битов на знак входных данных, но так как есть некоторая избыточность в виде индикатора режима и индикатора числа знаков, связанного с каждым изменением режима, то в результате не всегда может получиться самый короткий двоичный поток, если изменить режимы для нескольких знаков. Кроме того, так как емкость символов увеличивается дискретным ступенчатым образом от одной версии до следующей, не всегда требуется обеспечивать максимальную эффективность. Руководство по уменьшению длины двоичного потока приведено в приложении J. В символах Micro QR Code есть ограничения на использование режимов, доступных в версиях с меньшими номерами. В J.2 приведены версии символов Micro QR Code, соответствующим различным комбинациям двух режимов.

    7.3 Режимы

    7.3.1 Общие положения

    Режимы, представленные в настоящем разделе, основаны на значениях знаков и представлениях, связанных со значением ECI по умолчанию. Когда задействована любая другая ECI (только в символах QR Code), для определения оптимального режима рекомендуется использовать значения байта, а не определенные представления знаков. Например, числовой режим следует использовать, если встречается последовательность байтов данных, значения которых находятся в пределах диапазона от 30 до 39 включ. В этом случае лучшее уплотнение достигается при использовании заданных по умолчанию числовых или алфавитно-цифровых эквивалентов значений байта.

    7.3.2 Интерпретация в расширенном канале (ECI)

    Протокол интерпретации в расширенном канале (ECI), определенный в Международных технических спецификациях организации AIM Inc. «Интерпретации в расширенном канале» (International Technical Specification Extended Channel Interpretations) , допускает интерпретацию выходного потока данных, отличающегося от набора знаков по умолчанию. Протокол ECI определен одинаковым образом во множестве символик. Протокол ECI предусматривает метод интерпретации специфических значений байта после декодирования и перед выводом на печать (или монитор). Символика Micro QR Code не поддерживает протокол ECI.
    ________________
    См. спецификацию [22].

    Для QR Code по умолчанию принята интерпретация ECI 000003, соответствующая набору знаков в ИСО/МЭК 8859-1.

    В международных применениях могут быть использованы другие наборы знаков с помощью протокола ECI . Например, интерпретация ECI 000020, соответствующая набору знаков JIS8 и Shift JIS.
    ________________
    ИСО/МЭК 8859-5 устанавливает набор знаков с буквами кирилловского алфавита. Указанный набор приведен в приложении ДА. Этому набору соответствует ECI 000007.

    Эффективность применения режима ECI заключается во вставке в данные управляющей последовательности ECI. Непосредственно за ней должен стоять индикатор другого режима (например, для эффективного кодирования); режим ECI действует до конца сообщения или до следующего индикатора режима ECI.

    Числовой режим кодирует данные, состоящие из десятичных цифр (0-9) (байтовые значения от 30 до 39 ). Три знака данных обычно кодируются десятью битами.

    7.3.4 Алфавитно-цифровой режим

    Алфавитно-цифровой режим позволяет закодировать входные данные из набора 45 знаков: 10 десятичных цифр (0-9) (байтовые значения от 30 до 39 ), 26 латинских букв (A-Z) (байтовые значения от 41 до 5A ) и 9 специальных символов (SP, $, %, *, +, , ., /, :) (байтовые значения 20 , 24 , 25 , 2A , 2В , 2D до 2F , 3A соответственно). Обычно два входных знака кодируются 11 битами.

    В символике Micro QR Code версии M1 алфавитно-цифровой режим недоступен.

    7.3.5 Байтовый режим

    В этом режиме каждый знак входных данных кодируется 8 битами.

    В замкнутых системах, национальных или специальных реализациях QR Code, в байтовом режиме могут быть закодированы альтернативные 8-битовые наборы знаков, определенные в других частях ИСО/МЭК 8859. Если установлен альтернативный набор знаков, участвующие стороны, которые считывают символы QR Code, должны быть уведомлены в спецификации по применению или в двустороннем соглашении, какой именно набор знаков следует использовать.

    Цукерберг рекомендует:  Блокчейн в России. Настоящее и будущее

    В символике Micro QR Code версий M1и M2 байтовый режим недоступен.

    7.3.6 Режим кандзи

    Режим кандзи эффективно кодирует знаки кандзи в соответствии с системой Shift JIS, основанной на JIS X 0208. Значения Shift JIS получены сдвигом соответствующих значений JIS X 0208. Кодирование со сдвигом подробно описано в JIS X 0208. Каждый двухбайтовый знак кодируется в 13-битовое кодовое слово.

    Когда набор знаков, указанный для 8-битового байтового режима, использует байтовые значения в диапазоне от 81 до 9F и/или от E0 до EB , невозможно использовать режим кандзи однозначно, поскольку считывающие системы не способны из передаваемых данных определить, являются ли такие значения байта собственно данными или ведущим байтом двухбайтового знака. Можно получить более короткий двоичный поток, используя правила уплотнения режима кандзи, когда в данных встречается соответствующая последовательность значений байтов (т.е. ведущие байты, имеющие значения в диапазоне от 81 до 9F и/или от E0 до EB , сопровождаемые байтом, имеющим значение от 40 до FC , исключая 7F , или EB , сопровождаемые байтом, имеющим значение от 40 до BF ). Байтовые комбинации представлены на рисунке Н.1.

    В символике Micro QR Code версий M1 и M2 режим кандзи недоступен.

    7.3.7 Смешанный режим

    Символы QR Code могут содержать последовательности данных в любой комбинации режимов, описанных в 7.3.2-7.3.9. Символы Micro QR Code могут содержать последовательности данных в любой комбинации режимов, допустимых для соответствующей версии и описанных в 7.3.3-7.3.7.

    В приложении J приведено руководство для выбора наиболее эффективного преобразования входного потока данных в символ QR Code с множеством режимов. В подразделе J.3 приведено описание получения комбинации из двух режимов для допустимых версий символа Micro QR Code.

    7.3.8 Режим структурированного соединения

    Режим структурированного соединения используется в том случае, когда требуется разделить одно кодируемое сообщение на несколько символов QR Code. Все эти символы должны быть считаны, чтобы корректно восстановить первоначальное сообщение. Заголовок структурированного соединения кодируется в каждом символе и содержит информацию о длине последовательности символов, позиции символа в этой последовательности и идентификатор для проверки принадлежности всех символов одному сообщению. В разделе 8 приведена более полная информация о правилах кодирования структурированного соединения.

    В символике Micro QR Code режим структурированного соединения недоступен.

    7.3.9 Режим функционального знака 1 (FNC1)

    Режим функционального знака 1 (FNC1) используется в сообщениях, которые содержат данные специального формата. FNC1 в «первой позиции», указывает, что данные отформатированы в соответствии с Общими спецификациями GS1. FNC1 во «второй позиции» определяет данные, отформатированные в соответствии с применением, согласованными с организацией AIM Inc. Режим FNC1 воздействует на все содержимое символа, но последующие индикаторы режима на него не оказывают влияния.

    Примечание — «Первая позиция» и «вторая позиция» не относятся к фактическим местоположениям, но основаны на позиции знаков аналогично символике Code 128.

    В символике Micro QR Code режим FNC1 недоступен.

    7.4 Кодирование данных

    7.4.1 Последовательность данных

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

    Заголовок ECI (если присутствует) состоит из:

    — индикатора режима ECI (4 бита)

    — обозначения ECI (8, 16 или 24 бита)

    Заголовок ECI начинается с первого (старшего) бита индикатора режима ECI и завершается последним (младшим) битом обозначения ECI.

    Остальной двоичный поток может состоять из нескольких сегментов, каждый из которых состоит из:

    — индикатора режима;

    — индикатора числа знаков;

    — двоичного потока данных.

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

    Чтобы закодировать последовательность входных данных в текущем режиме, следует повторно использовать этапы в 7.4.2-7.4.7. В таблице 2 указаны индикаторы для каждого режима. В таблице 3 приведен размер индикатора числа знаков, который может иметь различные значения в зависимости от используемого режима и версии символа.

    Таблица 2 — Индикаторы режима для QR Code

    IsoCodes — библиотека для проверки кодов ISO

    The International Standard for country codes and codes for their subdivisions.

    The purpose of ISO 3166 is to define internationally recognised codes of letters and/or numbers that we can use when we refer to countries and subdivisions. However, it does not define the names of countries – this information comes from United Nations sources (Terminology Bulletin Country Names and the Country and Region Codes for Statistical Use maintained by the United Nations Statistics Divisions).


    Using codes saves time and avoids errors as instead of using a country’s name (which will change depending on the language being used) we can use a combination of letters and/or numbers that are understood all over the world.

    For example, all national postal organizations throughout the world exchange international mail in containers identified with the relevant country code. Internet domain name systems use the codes to define top level domain names such as ‘.fr’ for France, ‘.au’ for Australia. In addition, in machine readable passports, the codes are used to determine the nationality of the user and when we send money from one bank to another the country codes are a way to identify where the bank is based.

    Contact the ISO 3166 Maintenance Agency

    The ISO 3166/MA should be contacted through its secretariat. Please use the following address:

    ISO 3166 Maintenance Agency
    c/o International Organization for Standardization
    Chemin de Blandonnet 8
    CP 401
    1214 Vernier, Geneva
    Switzerland

    How can I access ISO 3166?

    The codes in ISO 3166 are available on the Online Browsing Platform. The information on the OBP is always up to date and you can sign up for notifications to be informed when changes are made by clicking on the follow function in the top right hand corner.

    We also have a product, the Country Codes Collection, which you can preview free of charge on the OBP (where you will also find a decoding table). It contains the codes from parts 1, 2 and 3 of ISO 3166 in 3 different formats: .xml, .csv, and .xls for easy integration into your own systems. You will be notified when changes are made so you can download the latest versions. In this way, you can be sure that your database is always using the most up-to-date information from ISO.

    What is included in ISO 3166?

    ISO 3166 has three parts: codes for countries, codes for subdivisions and formerly used codes (codes that were once used to describe countries but are no longer in use).

    The country codes can be represented either as a two-letter code (alpha-2) which is recommended as the general purpose code, a three-letter code (alpha-3) which is more closely related to the country name and a three digit numeric code (numeric -3) which can be useful if you need to avoid using Latin script.

    The codes for subdivisions are represented as the alpha-2 code for the country, followed by up to three characters. For example ID-RI is the Riau province of Indonesia and NG-RI is the Rivers province in Nigeria. Names and codes for subdivisions are usually taken from relevant official national information sources.

    The formerly used codes are four letter codes (alpha-4). How the alpha 4 codes are constructed depends on the reason why the country name has been removed.

    Read more about the different types of codes in the Glossary for ISO 3166.

    How is ISO 3166 maintained?

    ISO 3166 is regularly updated to reflect changes in country names and subdivisions. These changes are done by the ISO 3166 Maintenance Agency (ISO3166/MA).

    The maintenance agency includes representatives from the following 14 organizations:

    • Association française de normalisation AFNOR (France)
    • American National Standards Institute ANSI (United States)
    • British Standards Institution BSI (United Kingdom)
    • Deutsches Institut für Normung DIN (Germany)
    • Japanese Industrial Standards Committee (JISC)
    • Spanish Association for Standardization (UNE)
    • Standards Australia (SA)
    • Standards Council of Canada (SCC)
    • Swedish Standards Institute (SIS)
    • International Atomic Energy Agency (IAEA)
    • International Civil Aviation Organization (ICAO)
    • International Telecommunication Union (ITU)
    • Internet Corporation for Assigned Names and Numbers (ICANN)
    • Universal Postal Union (UPU)
    • United Nations Economic Commission for Europe (UNECE)

    How are country code elements assigned?

    Following notification from the United Nations (UN), the ISO 3166 maintenance agency assigns alpha-2 and alpha-3 country code elements to new UN member states. The numeric country code is assigned by the UN.

    As a general rule, the ISO 3166 maintenance agency does not assign official country code elements to other geopolitical areas or countries that are not member states of the UN.

    However, the ISO 3166 maintenance agency may assign country codes to dependencies of countries that are member states of the UN. To be considered, some criteria, amongst others, include that the area be physically separated from its parent country and outside its territorial waters. Even if all criteria are met, the ISO 3166 maintenance agency may decide not to assign a code element, for example, due to the very limited number of official alpha-2 code elements available.

    php-isocodes

    ⭐️ This library used to get localized names of countries, currencies, languages and scripts.

    �� Based on Python’s pycountry and Debian’s iso-codes.

    �� Database version: iso-codes-3.79-244-gdae9d2b8 from 2020-03-02 08:40

    Table of contents

    • ISO 3166-1: Country codes (alpha-2, alpha-3, numeric)
    • ISO 3166-2: Principal subdivisions (e.g., provinces or states) of all countries coded in ISO 3166-1
    • ISO 3166-3: Historic countries (alpha-2, alpha-3, alpha-4, numeric)
    • ISO 15924: Scripts
    • ISO 4217: Currencies
    • ISO 639-3: Languages

    You can install library through Composer:

    Before using IsoCodes database you need to setup valid locale to get transtions worked:

    To get list of available locales, execute under console:

    If you don’t see required locales in list, you may install them manually (for Ubuntu):

    Manual database update

    Database and related gettext files located inside this repo in databases and messages directories. This data periodically updated with package version increment.

    If you want to update database more often, use script update_db.sh . Call this script by cron, during deploy process or when build your docker image.

    Now you need to configure factory to use this directory:

    Countries database (ISO 3166-1)

    Get localized name of country by it’s alpha2 code:

    Get localized name of country by it’s alpha2 code:

    Get localized name of country by it’s numeric code:

    Get localised list of countries

    Subdivisions database (ISO 3166-2)

    Historic countries database (ISO 3166-3)

    QR Code Introduction

    This page talks about general information of the 2D barcode, QR Code (ISO/IEC 18004:2006).

    QR Code Overview

    QR Code is a matrix barcode (or two-dimensional code), readable by QR scanners, mobile phones with a camera, and smartphones. It consists of black modules arranged in a square pattern on white background. The information encoded can be text, URL or other data. OnBarcode QR Code Generator Components are fully compatible with ISO/IEC 18004:2006.

    QR Code Structure and Size

    Each QR Code is a regular square array constructed of several nominally square modules, including an encoding region and function patterns, namely finder, separator, timing patterns, and alignment patterns. Function patterns cannot be used to encode data, and the QR Code symbol is surrounded by quiet zone on all four sides.

    QR Code image has 40 Versions, ranging from Version 1 to Version 40. So, there are 40 sizes of QR Code in all and the size begins from 21 X 21 modules and up to 177 X 177 modules (not including quiet zone), increasing in steps of 4 modules per side. Please get details from QR Code size setting instruction.

    QR Code Data Encoding

    QR Code Data Characters per Symbol

    QR Code Error Correction Level

    QR Code Orientation Independence

    QR Code is readable from any direction, both rotation and reflection. The position detection patterns at the three corners of the QR Code image guarantee stable high-speed reading, circumventing the negative effects of background interference.

    Generating and Scanning QR Code Barcodes

    OnBarcode provides comprehensive QR Code barcode generator and scanner components for Java, .NET, Android, iOS developments and several reporting applications.

    Generating and Printing GS1 Compatible QR Code with AIs (Application Identifiers)

    For example, if you need to encode «Global Trade Item Number (GTIN)» and «Production Date» into a QR Code. You may set the property «Data» value to » (01)01234567891234(11)100130 «, in which:

    Encoding ISO-8859-1 Chars and ASCII Control Functions in QR Code Barcodes

    QR Code default encoding character set is the ISO 8859-1 standard (the first 128 chars are standard ASCII chars). You can easily encode ISO 8859-1 chars and ASCII control functions into a QR Code symbol.

    To encode some non-printable ISO-8859-1 chars and ASCII control functions, you need do the following steps using our QR Code Generation Controls.

    • Set QR Code property DataMode value to Auto (including all ASCII).
    • Set QR Code property ProcessTilde value to True .
    • Use tilde «

    ddd » (ddd is from 000 to 255 for 256 ISO-8859-1 (Latin 1)) to encode chars and control functions.

    013Code «, in which:

    Encoding Unicode and International Character Sets

    Instead of encoding ISO 8859-1 standard chars, QR Code allows you to switch to other encoding characters (e.g. Arabic, Cyrillic, Greek, Hebrew) through ECI (Extended Channel Interpretations).

    To encode Unicode and International Character Sets, you are supposed to do the following steps using our QR Code Generation Components.

    • Set QR Code property DataMode value to Auto (including all ASCII).
    • Set QR Code property ProcessTilde value to True .
    • Use tilde «

    6dddddd » (dddddd is from 00000

    65535) for 2-byte chars.

    You need to use ECI to switch to your encoding character set, the default character set in QR Code is ISO 8859-1 (ECI value is 000003).

    QR Code Encoding Kanji Character Set

    The QR-Code Kanji mode efficiently encodes Kanji characters in accordance with the Shift JIS system based on JIS X 0208. The Shift JIS values are shifted from the JIS X 0208 values. JIS X 0208 gives details of the shift coded representation. Each two-byte character value is compacted to a 13-bit binary codeword.

    To encode Kanji Character Set (Shift JIS), you need do the following steps using our QR Code Generation Components.

    • Set QR Code property DataMode value to Kanji .
    • Set QR Code property ProcessTilde value to True .
    • Use tilde «

    9ddddd » ((Shift JIS 0x8140

    0x9FFC and 0xE040

    0xEBBF)) for 2-byte chars.

    QR Code Extended Channel Interpretations (ECIs)

    ECI enables QR Code encode multiple character sets (e.g. Arabic, Cyrillic, Greek, Hebrew) and other data interpretations or industry specific requirements to be represented, into one QR Code symbol.

    The ECI is identified by a 6-digit number which is encoded in the QR Code symbol by the ECI character followed by one to three codewords.

    The default ECI is the ECI 000003 which describes the Latin alphabet according to the ISO 8859-1 standard (standard ASCII table).

    International applications using other character sets should use the ECI protocol. For instance, the interpretation corresponding to the JIS8 and Shift JIS character sets is ECI 000020. (To encode kanji code, we recommend you apply Kanji Mode in QR Code)

    You can have multiple ECIs (to encode multiple character sets) in your single QR Code symbol.

    To encode ECIs in QR Code symbol, you should do the following steps using OnBarcode’s QR Code Generation Libraries.

    • Set QR Code property ProcessTilde value to True .
    • Insert ECI «

    7dddddd » into your QR Code encoding data, to switch to another character set, and followed by your new character set data.

    QR Code Structured Append

    You can append up to 16 QR Code 2005 symbols in a structured format.

    To encode Structured Append in QR Code symbols, you need do the following steps using OnBarcode’s QR Code Generation Controls.

    • Set QR Code property StructuredAppend value to True .
    • Set QR Code property SymbolCount value to the count of QR Code Structured Append symbols.
    • Set QR Code property SymbolIndex value to indicate the position of the QR Code symbol in the same group of all Structured Append symbols. Starting with 1.
    • Set QR Code property Parity value to be identified to the same group of QR Code Structured Append symbols. Starting with 1.
    Понравилась статья? Поделиться с друзьями:
    Все языки программирования для начинающих