# perldoc > Encode::Supported

---
type: CommandReference
command: Encode::Supported
mode: perldoc
section: ''
source: perldoc
---

## Quick Reference
- `utf8` — UTF-8, the most widely used Unicode encoding
- `ascii` — 7-bit US ASCII
- `iso-8859-1` — Latin-1 Western European
- `euc-jp` — Extended UNIX Code for Japanese
- `shiftjis` — Shift JIS (Japanese)
- `euc-kr` — EUC-KR (Korean)
- `big5` — Big5 (Traditional Chinese)
- `iso-2022-jp` — 7-bit Japanese email encoding

## Name
Encodings supported by Encode

## Synopsis
Encode provides a standard interface for converting Perl strings between various character encodings.  Supported encodings are listed below, grouped by implementation module.  Canonical names are case‑insensitive; whitespace is replaced with '-'.  The Encode module autoloads required sub‑modules on demand.

## Options

### Built‑in Encodings
Always available without loading extra modules.

- `ascii` — `US-ascii`, `ISO-646-US` [ECMA]
- `ascii-ctrl` — Special encoding: all characters except controls fall back to character references
- `iso-8859-1` — `latin1` [ISO]
- `null` — Special encoding: every character fails (useful for fallback/conversion testing)
- `utf8` — `UTF-8` [RFC2279]

### `Encode::Unicode` — Other Unicode encodings
Autoloaded.

- `UCS-2BE` — `UCS-2`, `iso-10646-1` [IANA, UC]
- `UCS-2LE` — [UC]
- `UTF-16` — [UC]
- `UTF-16BE` — [UC]
- `UTF-16LE` — [UC]
- `UTF-32` — [UC]
- `UTF-32BE` — `UCS-4` [UC]
- `UTF-32LE` — [UC]
- `UTF-7` — 7‑bit re‑encoding of UTF‑16BE [RFC2152]

### `Encode::Byte` — Extended ASCII (single‑byte)
Most single‑byte encodings except Symbols and EBCDIC.  All `cp*` numbers are also available as `ibm-*`, `ms-*` and `windows-*`.

**ISO‑8859 and vendor mappings** (grouped by region)

- **N. America** (`ascii`): DOS `cp437`, `cp863`; other `AdobeStandardEncoding`
- **W. Europe** (`iso‑8859‑1`): DOS `cp850`, `cp860`; Windows `cp1252`; Mac `MacRoman`; other `nextstep`, `hp-roman8`
- **Central Europe** (`iso‑8859‑2`): DOS `cp852`; Windows `cp1250`; Mac `MacCentralEurRoman`, `MacCroatian`, `MacRomanian`, `MacRumanian`
- **Latin‑3¹** (`iso‑8859‑3`): (none)
- **Latin‑4²** (`iso‑8859‑4`): (none)
- **Cyrillic** (`iso‑8859‑5`): DOS `cp855`, `cp866`; Windows `cp1251`; Mac `MacCyrillic`, `MacUkrainian`
- **Arabic** (`iso‑8859‑6`): DOS `cp864`, `cp1006`; Windows `cp1256`; Mac `MacArabic`, `MacFarsi`
- **Greek** (`iso‑8859‑7`): DOS `cp737`, `cp869`; Windows `cp1253`; Mac `MacGreek`
- **Hebrew** (`iso‑8859‑8`): DOS `cp862`; Windows `cp1255`; Mac `MacHebrew`
- **Turkish** (`iso‑8859‑9`): DOS `cp857`; Windows `cp1254`; Mac `MacTurkish`
- **Nordics** (`iso‑8859‑10`): DOS `cp865`, `cp861`; Mac `MacIcelandic`, `MacSami`
- **Thai** (`iso‑8859‑11`³): DOS `cp874`; Mac `MacThai`
- **Baltics** (`iso‑8859‑13`): DOS `cp775`; Windows `cp1257`
- **Celtics** (`iso‑8859‑14`): (none)
- **Latin‑9⁴** (`iso‑8859‑15`): (none)
- **Latin‑10** (`iso‑8859‑16`): (none)
- **Vietnamese** (`viscii`): Windows `cp1258`; Mac `MacVietnamese`

  ¹ Esperanto, Maltese, Turkish (now on 8859‑9).  
  ² Baltics (now on 8859‑10 except Latvian).  
  ³ TIS 620 + non‑breaking space (0xA0).  
  ⁴ Nicknamed “Latin0”; adds Euro, French/Finnish missing from 8859‑1.

**KOI8 – De facto standard for Cyrillic**
- `koi8-f`, `koi8-r` (`cp878`, RFC1489), `koi8-u` (RFC2319)

**gsm0338** – GSM handset encoding (handled by `Encode::GSM0338` as of Encode 2.20).  Contains escape sequences and Greek letters.

### CJK: Chinese, Japanese, Korean (multibyte)
Implemented in separate country‑specific modules.

#### `Encode::CN` — Continental China
- `euc-cn`¹
- `gbk` (aliased to `cp936`)²
- `gb12345-raw` — GB 12345 without CES
- `gb2312-raw` — GB 2312 without CES
- `hz`
- `iso-ir-165`

¹ GB2312 is aliased to this. ² gbk is aliased to `cp936`.

#### `Encode::JP` — Japan
- `euc-jp`
- `shiftjis` — also `cp932`, `macJapanese`
- `7bit-jis`
- `iso-2022-jp` [RFC1468]
- `iso-2022-jp-1` [RFC2237]
- `jis0201-raw` — JIS X 0201 (roman + halfwidth kana) without CES
- `jis0208-raw` — JIS X 0208 without CES
- `jis0212-raw` — JIS X 0212 without CES

#### `Encode::KR` — Korea
- `euc-kr` — also `MacKorean` [RFC1557]
- `cp949`¹
- `iso-2022-kr` [RFC1557]
- `johab` [KS X 1001:1998, Annex 3]
- `ksc5601-raw` — KSC5601 without CES

¹ `ks_c_5601-1987`, `(x-)?windows-949`, `uhc` are aliased.

#### `Encode::TW` — Taiwan
- `big5-eten` (`big5` aliased to this) — also `cp950`, `MacChineseTrad`
- `big5-hkscs`

#### External CPAN modules
- `Encode::HanExtra` – more Chinese: `big5ext`, `big5plus`, `cccii`, `euc-tw`, `gb18030`
- `Encode::JIS2K` – JIS X 0213: `euc-jisx0213`, `shiftjisx0123`, `iso-2022-jp-3`, `jis0213-1-raw`, `jis0213-2-raw`

### Miscellaneous Encodings
- **`Encode::EBCDIC`**: `cp37`, `cp500`, `cp875`, `cp1026`, `cp1047`, `posix-bc`
- **`Encode::Symbols`**: `symbol`, `dingbats`, `MacDingbats`, `AdobeZdingbat`, `AdobeSymbol`
- **`Encode::MIME::Header`**: `MIME-Header`, `MIME-B`, `MIME-Q` (RFC 2047)
- **`Encode::Guess`** – automatic charset detection (see its documentation)

### Unsupported Encodings
- `ISO-2022-JP-2` [RFC1554] – requires Unicode database for overlapping code points
- `ISO-2022-CN` [RFC1922] – needs CNS 11643‑1/‑2 (supported via `euc-tw` in `Encode::HanExtra`)
- Various HP‑UX: `arabic8`, `greek8`, `hebrew8`, `kana8`, `thai8`, `turkish8`, `japanese15`, `korean15`, `roi15` – missing mapping data
- `ISO-IR-111` (Cyrillic), `ISO-8859-8-1` (Hebrew), ISIRI 3342/2900 (Farsi), TCVN (Thai), VPS (Vietnamese), several Mac encodings (Armenian, Bengali, Devanagari, etc.) – missing mapping data or algorithm support

## Examples

Workaround for `gsm0338` decoding issues before Encode 2.19:

perl
$gsm =~ s/\x00\z/\x00\x00/;
$uni = decode("gsm0338", $gsm);
$uni .= "\xA0" if $gsm =~ /\x1B\z/;
## See Also
- [Encode](https://perldoc.perl.org/Encode.html)
- [Encode::Unicode](https://perldoc.perl.org/Encode::Unicode.html)
- [Encode::Byte](https://perldoc.perl.org/Encode::Byte.html)
- [Encode::CN](https://perldoc.perl.org/Encode::CN.html)
- [Encode::JP](https://perldoc.perl.org/Encode::JP.html)
- [Encode::KR](https://perldoc.perl.org/Encode::KR.html)
- [Encode::TW](https://perldoc.perl.org/Encode::TW.html)
- [Encode::EBCDIC](https://perldoc.perl.org/Encode::EBCDIC.html)
- [Encode::Symbol](https://perldoc.perl.org/Encode::Symbol.html)
- [Encode::MIME::Header](https://perldoc.perl.org/Encode::MIME::Header.html)
- [Encode::Guess](https://perldoc.perl.org/Encode::Guess.html)
- [Encode::HanExtra](https://metacpan.org/pod/Encode::HanExtra)
- [Encode::JIS2K](https://metacpan.org/pod/Encode::JIS2K)
- [Encode::GSM0338](https://perldoc.perl.org/Encode::GSM0338.html)

## Notes

### Encoding vs. Charset
- **Character repertoire** – collection of characters (not numbered)
- **Coded character set (CCS)** – repertoire with numeric codes, ready for direct use by computers (e.g. ASCII, EUC)
- **Character encoding scheme (CES)** – algorithm that maps a character set to a byte sequence (e.g. 7‑bit ISO‑2022, UTF‑8).  A CES can also be a CCS (e.g. EUC is both)
- **Charset** (MIME context) – synonymous with “encoding” (CES).  RFC 2277 defines it as “a set of rules for mapping octets to characters”.

### Glossary (selected)
- **EUC** – Extended Unix Character; uses ISO‑2022 8‑bit version
- **ISO‑2022** – CES that coexists with ASCII; 7‑bit uses escape sequences, 8‑bit forms CCS (EUC, ISO‑8859)
- **UCS** – Universal Character Set (Unicode)
- **UCS‑2** – ISO 10646 16‑bit encoding
- **UTF** – Unicode Transformation Format (UTF‑16, UTF‑32, etc.)

### Microsoft‑related naming mess
Microsoft misuses several IANA names.  Encode provides separate aliases to maintain compatibility.

- **`KS_C_5601-1987`** – Microsoft extension of EUC‑KR; proper name `cp949` (also `uhc`, `windows-949`).  Raw KSC5601 is `ksc5601-raw`.
- **`GB2312`** – Microsoft extension of EUC‑CN; proper name `cp936` (GBK).  Raw GB2312 is `gb2312-raw`.
- **`Big5`** – Microsoft extension; proper name `cp950`.
- **`Shift_JIS`** – Microsoft variant (CP932) versus strict JIS Shift_JIS.  Encode supports both `shiftjis` and `cp932` (Windows‑31J).

Use the canonical names listed in this document to avoid ambiguity.