# Encoding reference data notices

The browser-only encoding reference tools contain lookup data derived from the
following pinned upstream sources. The lookup tables are compiled during
development into `assets/js/encoding-reference-core.js`; the public pages do
not fetch these upstream files or send query text over the network. The UI
integration in `assets/js/tool-pack-encoding-reference.js` calls that local
core but does not contain a second mapping-data copy.

## WHATWG Encoding indexes

The three source files were published with identifier date `2024-09-18` and
are made available by WHATWG under the CC0 1.0 Universal public-domain
dedication. A local copy of the CC0 legal code is stored in `CC0-1.0.txt`.

| Source | Upstream URL | SHA-256 |
| --- | --- | --- |
| `index-gb18030.txt` | <https://encoding.spec.whatwg.org/index-gb18030.txt> | `746b3c55f1a8ec4b90b451f384437a17fd37cd51cd668456a28071a758d10784` |
| `index-gb18030-ranges.txt` | <https://encoding.spec.whatwg.org/index-gb18030-ranges.txt> | `874c6b6f6f74cf7d427ad228d5b41ddd9354fffd92a2259bf429f86e6baa7a1e` |
| `index-big5.txt` | <https://encoding.spec.whatwg.org/index-big5.txt> | `08e24270c8e95d998c994c03f907e972480dc01f58743e078654cc466203c8ff` |

The encoding behavior follows the algorithms and indexes defined by the
[WHATWG Encoding Standard](https://encoding.spec.whatwg.org/). “Web
compatible” in the product copy identifies this policy and must not be read as
a claim that every operating-system code page or vendor extension is
equivalent.

## ICU GB2312 mapping data

Strict GB2312-1980 lookup data is derived from ICU release `78.3`, Git tag
`release-78.3`, commit `21d1eb0f306e1141c10931e914dfc038c06121da`:

- Source: `icu4c/source/data/mappings/ibm-5478_P100-1995.ucm`
- Upstream URL: <https://github.com/unicode-org/icu/blob/release-78.3/icu4c/source/data/mappings/ibm-5478_P100-1995.ucm>
- SHA-256: `a0de779206672f548f14ea3f82cbc22e316a7bffac0b5eba662473469bd2d2ab`
- License: Unicode License v3 (`Unicode-3.0`); a local copy is stored in
  `UNICODE-LICENSE-3.0.txt`.

The UCM file contains 7,445 double-byte row/cell mappings in the `0x21–0x7E`
range. The local compiler adds `0x80` to each row/cell byte to produce the
corresponding EUC-CN/GB2312 byte pair. ASCII is handled separately and no GBK,
CP936, or GB18030 extension is added to the strict GB2312 lookup.
