Supported encodings: Iconvex vs GNU libiconv 1.19

Copy Markdown View Source

Machine-generated from GNU libiconv 1.19's six fixed-codec definition files. test/codec_parity_test.exs independently parses byte-exact upstream snapshots and requires exact set and alias parity.

Parity result

  • Iconvex core fixed codecs: 112/112.
  • iconvex_extras fixed codecs: 86/86.
  • GNU-compatible Iconvex surface: 112 core + 86 extras = 198/198.
  • GNU fixed-codec union: 198/198.
  • Common fixed codecs: 198.
  • GNU-only fixed codecs: 0.
  • Iconvex-only fixed codecs: 0.
  • GNU source spellings/aliases resolved by Iconvex: 758. Core owns 416; extras adds 342.
  • Additional audited specification/ICU aliases: 30.
  • Total resolved fixed-codec spellings: 788.
  • Default GNU build iconv -l: 112/112, all supported by Iconvex.

Ecosystem context

This matrix deliberately measures GNU's fixed-codec namespace, not every Iconvex package. The full Iconvex ecosystem owns 2,105 canonical byte-stream codecs across ten runtime packages. See the repository-level ICONVEX_CODEC_PACKAGE_INDEX.csv for the generated codec-to-package map and ICONVEX_FULL_STACK_SUPPORT.md for the complete side-by-side list. GNU parity remains the exact 198/198 Core + Extras union.

Packed transport surface

Packing is orthogonal to the GNU codec registry. Iconvex.Packed can pack the one-unit-per-octet output of any built-in or external codec at every width from 1 through 8 bits, in exact MSB-first or byte-backed LSB-first order. It is not counted as a second character encoding because the Unicode mapping is unchanged; the transport preserves its exact unit width and meaningful bit length.

The leaf packages publish explicit packed profiles without inflating the byte-codec total: Telecom has 53 profiles (3, 5, 6, and 7 bits), Standards has 5, Bibliographic has 2, and Retro has 57 spanning 6 through 12 bits. iconvex_unicode exposes RFC 4042 UTF-9 and UTF-18 as native 9- and 18-bit Elixir bitstrings plus explicitly endian-tagged byte transports.

SUPPORTED_NAME_INVENTORY.csv is generated from the compiled core registry. The parity suite requires its 446 normalized names and canonical targets to be an exact runtime snapshot; research consumes this file directly.

GNU union means all fixed codecs implemented across encodings.def, encodings_extra.def, encodings_aix.def, encodings_dos.def, encodings_osf1.def, and encodings_zos.def. Default iconv -l exposes the 112 core codecs on this build; extra/platform definitions raise the source union to 198. The iconvex package intentionally contains exactly the GNU default set. Adding the separate iconvex_extras package exposes the complete union on every BEAM platform. A dash means that codec is intentionally owned by the other package.

Locale/ABI adapters

GNU also accepts CHAR and WCHAR_T through encodings_local.def. These are environment/ABI adapters, not fixed codecs, and GNU omits them from iconv -l. CHAR delegates to process locale encoding. WCHAR_T delegates to platform C wchar_t width/endian/layout. Iconvex intentionally excludes both: pure BEAM conversion has no libc locale or C wchar_t ABI. Use explicit fixed names such as UTF-8, UCS-4-INTERNAL, UTF-16LE, or UTF-32LE.

Complete fixed-codec list

CodecCore iconvexiconvex_extrasGNU 1.19 unionGNU definitionDefault iconv -l
ARMSCII-8YesYesCore/defaultYes
ATARISTYesYesExtraNo
BIG5YesYesCore/defaultYes
BIG5-2003YesYesExtraNo
BIG5-HKSCSYesYesCore/defaultYes
BIG5-HKSCS:1999YesYesCore/defaultYes
BIG5-HKSCS:2001YesYesCore/defaultYes
BIG5-HKSCS:2004YesYesCore/defaultYes
C99YesYesCore/defaultYes
CP1046YesYesAIXNo
CP1124YesYesAIXNo
CP1125YesYesDOSNo
CP1129YesYesAIXNo
CP1131YesYesCore/defaultYes
CP1133YesYesCore/defaultYes
CP1161YesYesAIXNo
CP1162YesYesAIXNo
CP1163YesYesAIXNo
CP1250YesYesCore/defaultYes
CP1251YesYesCore/defaultYes
CP1252YesYesCore/defaultYes
CP1253YesYesCore/defaultYes
CP1254YesYesCore/defaultYes
CP1255YesYesCore/defaultYes
CP1256YesYesCore/defaultYes
CP1257YesYesCore/defaultYes
CP1258YesYesCore/defaultYes
CP437YesYesDOSNo
CP737YesYesDOSNo
CP775YesYesDOSNo
CP850YesYesCore/defaultYes
CP852YesYesDOSNo
CP853YesYesDOSNo
CP855YesYesDOSNo
CP856YesYesAIXNo
CP857YesYesDOSNo
CP858YesYesDOSNo
CP860YesYesDOSNo
CP861YesYesDOSNo
CP862YesYesCore/defaultYes
CP863YesYesDOSNo
CP864YesYesDOSNo
CP865YesYesDOSNo
CP866YesYesCore/defaultYes
CP869YesYesDOSNo
CP874YesYesCore/defaultYes
CP922YesYesAIXNo
CP932YesYesCore/defaultYes
CP936YesYesCore/defaultYes
CP943YesYesAIXNo
CP949YesYesCore/defaultYes
CP950YesYesCore/defaultYes
DEC-HANYUYesYesOSF/1No
DEC-KANJIYesYesOSF/1No
EUC-CNYesYesCore/defaultYes
EUC-JISX0213YesYesExtraNo
EUC-JPYesYesCore/defaultYes
EUC-KRYesYesCore/defaultYes
EUC-TWYesYesCore/defaultYes
GB18030YesYesCore/defaultYes
GB18030:2022YesYesCore/defaultYes
GBKYesYesCore/defaultYes
GB_1988-80YesYesCore/defaultYes
GB_2312-80YesYesCore/defaultYes
GEORGIAN-ACADEMYYesYesCore/defaultYes
GEORGIAN-PSYesYesCore/defaultYes
HP-ROMAN8YesYesCore/defaultYes
HZYesYesCore/defaultYes
IBM-037YesYesz/OSNo
IBM-1025YesYesz/OSNo
IBM-1026YesYesz/OSNo
IBM-1047YesYesz/OSNo
IBM-1097YesYesz/OSNo
IBM-1112YesYesz/OSNo
IBM-1122YesYesz/OSNo
IBM-1123YesYesz/OSNo
IBM-1130YesYesz/OSNo
IBM-1132YesYesz/OSNo
IBM-1137YesYesz/OSNo
IBM-1140YesYesz/OSNo
IBM-1141YesYesz/OSNo
IBM-1142YesYesz/OSNo
IBM-1143YesYesz/OSNo
IBM-1144YesYesz/OSNo
IBM-1145YesYesz/OSNo
IBM-1146YesYesz/OSNo
IBM-1147YesYesz/OSNo
IBM-1148YesYesz/OSNo
IBM-1149YesYesz/OSNo
IBM-1153YesYesz/OSNo
IBM-1154YesYesz/OSNo
IBM-1155YesYesz/OSNo
IBM-1156YesYesz/OSNo
IBM-1157YesYesz/OSNo
IBM-1158YesYesz/OSNo
IBM-1160YesYesz/OSNo
IBM-1164YesYesz/OSNo
IBM-1165YesYesz/OSNo
IBM-1166YesYesz/OSNo
IBM-12712YesYesz/OSNo
IBM-16804YesYesz/OSNo
IBM-273YesYesz/OSNo
IBM-277YesYesz/OSNo
IBM-278YesYesz/OSNo
IBM-280YesYesz/OSNo
IBM-282YesYesz/OSNo
IBM-284YesYesz/OSNo
IBM-285YesYesz/OSNo
IBM-297YesYesz/OSNo
IBM-423YesYesz/OSNo
IBM-424YesYesz/OSNo
IBM-425YesYesz/OSNo
IBM-4971YesYesz/OSNo
IBM-500YesYesz/OSNo
IBM-838YesYesz/OSNo
IBM-870YesYesz/OSNo
IBM-871YesYesz/OSNo
IBM-875YesYesz/OSNo
IBM-880YesYesz/OSNo
IBM-905YesYesz/OSNo
IBM-924YesYesz/OSNo
ISO-2022-CNYesYesCore/defaultYes
ISO-2022-CN-EXTYesYesCore/defaultYes
ISO-2022-JPYesYesCore/defaultYes
ISO-2022-JP-1YesYesCore/defaultYes
ISO-2022-JP-2YesYesCore/defaultYes
ISO-2022-JP-3YesYesExtraNo
ISO-2022-JP-MSYesYesCore/defaultYes
ISO-2022-KRYesYesCore/defaultYes
ISO-8859-1YesYesCore/defaultYes
ISO-8859-10YesYesCore/defaultYes
ISO-8859-11YesYesCore/defaultYes
ISO-8859-13YesYesCore/defaultYes
ISO-8859-14YesYesCore/defaultYes
ISO-8859-15YesYesCore/defaultYes
ISO-8859-16YesYesCore/defaultYes
ISO-8859-2YesYesCore/defaultYes
ISO-8859-3YesYesCore/defaultYes
ISO-8859-4YesYesCore/defaultYes
ISO-8859-5YesYesCore/defaultYes
ISO-8859-6YesYesCore/defaultYes
ISO-8859-7YesYesCore/defaultYes
ISO-8859-8YesYesCore/defaultYes
ISO-8859-9YesYesCore/defaultYes
ISO-IR-165YesYesCore/defaultYes
JAVAYesYesCore/defaultYes
JIS_C6220-1969-ROYesYesCore/defaultYes
JIS_X0201YesYesCore/defaultYes
JIS_X0208YesYesCore/defaultYes
JIS_X0212YesYesCore/defaultYes
JOHABYesYesCore/defaultYes
KOI8-RYesYesCore/defaultYes
KOI8-RUYesYesCore/defaultYes
KOI8-TYesYesCore/defaultYes
KOI8-UYesYesCore/defaultYes
KSC_5601YesYesCore/defaultYes
MULELAO-1YesYesCore/defaultYes
MacArabicYesYesCore/defaultYes
MacCentralEuropeYesYesCore/defaultYes
MacCroatianYesYesCore/defaultYes
MacCyrillicYesYesCore/defaultYes
MacGreekYesYesCore/defaultYes
MacHebrewYesYesCore/defaultYes
MacIcelandYesYesCore/defaultYes
MacRomanYesYesCore/defaultYes
MacRomaniaYesYesCore/defaultYes
MacThaiYesYesCore/defaultYes
MacTurkishYesYesCore/defaultYes
MacUkraineYesYesCore/defaultYes
NEXTSTEPYesYesCore/defaultYes
PT154YesYesCore/defaultYes
RISCOS-LATIN1YesYesExtraNo
RK1048YesYesCore/defaultYes
SHIFT_JISYesYesCore/defaultYes
SHIFT_JISX0213YesYesExtraNo
TCVNYesYesCore/defaultYes
TDS565YesYesExtraNo
TIS-620YesYesCore/defaultYes
UCS-2YesYesCore/defaultYes
UCS-2-INTERNALYesYesCore/defaultYes
UCS-2-SWAPPEDYesYesCore/defaultYes
UCS-2BEYesYesCore/defaultYes
UCS-2LEYesYesCore/defaultYes
UCS-4YesYesCore/defaultYes
UCS-4-INTERNALYesYesCore/defaultYes
UCS-4-SWAPPEDYesYesCore/defaultYes
UCS-4BEYesYesCore/defaultYes
UCS-4LEYesYesCore/defaultYes
US-ASCIIYesYesCore/defaultYes
UTF-16YesYesCore/defaultYes
UTF-16BEYesYesCore/defaultYes
UTF-16LEYesYesCore/defaultYes
UTF-32YesYesCore/defaultYes
UTF-32BEYesYesCore/defaultYes
UTF-32LEYesYesCore/defaultYes
UTF-7YesYesCore/defaultYes
UTF-8YesYesCore/defaultYes
VISCIIYesYesCore/defaultYes