# woocommerce-pos/1.10.21/vendor_prefixed/chillerlan/php-qrcode/src/Common/ECICharset.php

WCPOS – Point of Sale (POS) plugin for WooCommerce, version 1.10.21. 150 lines.

- Page: https://pluginprobe.com/plugins/woocommerce-pos/1.10.21/code/vendor_prefixed/chillerlan/php-qrcode/src/Common/ECICharset.php
- Raw: https://pluginprobe.com/plugins/woocommerce-pos/1.10.21/raw/vendor_prefixed/chillerlan/php-qrcode/src/Common/ECICharset.php
- Modified: 2026-06-09T13:55:26+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/woocommerce-pos/1.10.21/code/vendor_prefixed/chillerlan/php-qrcode/src/Common/ECICharset.php#L10-L20`.

```php
<?php

/**
 * Class ECICharset
 *
 * @created      21.01.2021
 * @author       ZXing Authors
 * @author       smiley <smiley@chillerlan.net>
 * @copyright    2021 smiley
 * @license      Apache-2.0
 */
namespace WCPOS\Vendor\chillerlan\QRCode\Common;

use WCPOS\Vendor\chillerlan\QRCode\QRCodeException;
use function sprintf;
/**
 * ISO/IEC 18004:2000 - 8.4.1 Extended Channel Interpretation (ECI) Mode
 */
final class ECICharset
{
    public const CP437 = 0;
    // Code page 437, DOS Latin US
    public const ISO_IEC_8859_1_GLI = 1;
    // GLI encoding with characters 0 to 127 identical to ISO/IEC 646 and characters 128 to 255 identical to ISO 8859-1
    public const CP437_WO_GLI = 2;
    // An equivalent code table to CP437, without the return-to-GLI 0 logic
    public const ISO_IEC_8859_1 = 3;
    // Latin-1 (Default)
    public const ISO_IEC_8859_2 = 4;
    // Latin-2
    public const ISO_IEC_8859_3 = 5;
    // Latin-3
    public const ISO_IEC_8859_4 = 6;
    // Latin-4
    public const ISO_IEC_8859_5 = 7;
    // Latin/Cyrillic
    public const ISO_IEC_8859_6 = 8;
    // Latin/Arabic
    public const ISO_IEC_8859_7 = 9;
    // Latin/Greek
    public const ISO_IEC_8859_8 = 10;
    // Latin/Hebrew
    public const ISO_IEC_8859_9 = 11;
    // Latin-5
    public const ISO_IEC_8859_10 = 12;
    // Latin-6
    public const ISO_IEC_8859_11 = 13;
    // Latin/Thai
    // 14 reserved
    public const ISO_IEC_8859_13 = 15;
    // Latin-7 (Baltic Rim)
    public const ISO_IEC_8859_14 = 16;
    // Latin-8 (Celtic)
    public const ISO_IEC_8859_15 = 17;
    // Latin-9
    public const ISO_IEC_8859_16 = 18;
    // Latin-10
    // 19 reserved
    public const SHIFT_JIS = 20;
    // JIS X 0208 Annex 1 + JIS X 0201
    public const WINDOWS_1250_LATIN_2 = 21;
    // Superset of Latin-2, Central Europe
    public const WINDOWS_1251_CYRILLIC = 22;
    // Latin/Cyrillic
    public const WINDOWS_1252_LATIN_1 = 23;
    // Superset of Latin-1
    public const WINDOWS_1256_ARABIC = 24;
    public const ISO_IEC_10646_UCS_2 = 25;
    // High order byte first (UTF-16BE)
    public const ISO_IEC_10646_UTF_8 = 26;
    // UTF-8
    public const ISO_IEC_646_1991 = 27;
    // International Reference Version of ISO 7-bit coded character set (US-ASCII)
    public const BIG5 = 28;
    // Big 5 (Taiwan) Chinese Character Set
    public const GB18030 = 29;
    // GB (PRC) Chinese Character Set
    public const EUC_KR = 30;
    // Korean Character Set
    /**
     * map of charset id -> name
     *
     * @see \mb_list_encodings()
     */
    public const MB_ENCODINGS = [
        self::CP437 => null,
        self::ISO_IEC_8859_1_GLI => null,
        self::CP437_WO_GLI => null,
        self::ISO_IEC_8859_1 => 'ISO-8859-1',
        self::ISO_IEC_8859_2 => 'ISO-8859-2',
        self::ISO_IEC_8859_3 => 'ISO-8859-3',
        self::ISO_IEC_8859_4 => 'ISO-8859-4',
        self::ISO_IEC_8859_5 => 'ISO-8859-5',
        self::ISO_IEC_8859_6 => 'ISO-8859-6',
        self::ISO_IEC_8859_7 => 'ISO-8859-7',
        self::ISO_IEC_8859_8 => 'ISO-8859-8',
        self::ISO_IEC_8859_9 => 'ISO-8859-9',
        self::ISO_IEC_8859_10 => 'ISO-8859-10',
        self::ISO_IEC_8859_11 => null,
        self::ISO_IEC_8859_13 => 'ISO-8859-13',
        self::ISO_IEC_8859_14 => 'ISO-8859-14',
        self::ISO_IEC_8859_15 => 'ISO-8859-15',
        self::ISO_IEC_8859_16 => 'ISO-8859-16',
        self::SHIFT_JIS => 'SJIS',
        self::WINDOWS_1250_LATIN_2 => null,
        // @see https://www.php.net/manual/en/function.mb-convert-encoding.php#112547
        self::WINDOWS_1251_CYRILLIC => 'Windows-1251',
        self::WINDOWS_1252_LATIN_1 => 'Windows-1252',
        self::WINDOWS_1256_ARABIC => null,
        // @see https://stackoverflow.com/a/8592995
        self::ISO_IEC_10646_UCS_2 => 'UTF-16BE',
        self::ISO_IEC_10646_UTF_8 => 'UTF-8',
        self::ISO_IEC_646_1991 => 'ASCII',
        self::BIG5 => 'BIG-5',
        self::GB18030 => 'GB18030',
        self::EUC_KR => 'EUC-KR',
    ];
    /**
     * The current ECI character set ID
     */
    private int $charsetID;
    /**
     * @throws \chillerlan\QRCode\QRCodeException
     */
    public function __construct(int $charsetID)
    {
        if ($charsetID < 0 || $charsetID > 999999) {
            throw new QRCodeException(sprintf('invalid charset id: "%s"', $charsetID));
        }
        $this->charsetID = $charsetID;
    }
    /**
     * Returns the current character set ID
     */
    public function getID() : int
    {
        return $this->charsetID;
    }
    /**
     * Returns the name of the current character set or null if no name is available
     *
     * @see \mb_convert_encoding()
     * @see \iconv()
     */
    public function getName() : ?string
    {
        return self::MB_ENCODINGS[$this->charsetID] ?? null;
    }
}

```
