(text encodings)

Reference

Overview

Every character encoding .NET knows, as a value, and finding one by name.

(import (only (text encodings) utf-16be windows-1252 encoding-named))

(string->bytes "blåbär" #:encoding utf-16be)
(bytes->string bs #:encoding windows-1252)
(match (encoding-named "Shift_JIS")
  ((Some e) (bytes->string bs #:encoding e))
  (None "an encoding nothing here knows"))

An encoding is an Encoding, the prelude’s name for .NET’s System.Text.Encoding. This module exports one for each of the 139 encodings .NET provides, the Windows and DOS code pages included, named as .NET names them, in lower case: utf-8, us-ascii, iso-8859-1, windows-1252, dos-862, koi8-r, shift_jis, big5, gb18030, ibm437, x-mac-cyrillic and the rest.

Two exceptions. .NET’s utf-16 and utf-32 are little-endian; here they are utf-16le and utf-32le, next to utf-16be and utf-32be. Where .NET gives two code pages one name, the less common is cp and its number: euc-jp is code page 51932 and cp20932 the other, iso-2022-jp is 50220 and cp50222 the other.

Strict or lenient is not the encoding’s. bytes->string and string->bytes fail on what does not convert unless given a replacement; a port reads what does not decode as U+FFFD. The same value serves both.

No byte order marks. The Unicode encodings neither write a mark nor skip one: a mark is the character U+FEFF.

Cost. An encoding is made the first time its name is used and kept; importing the module makes none. UTF-7 is not provided, as .NET has stopped providing it.

See also: encoding-named, encoding-of-code-page, encoding-name

Reference

Functions

Values

Functions

encoding-named

function ↑ Functions

(: encoding-named (-> string (Option Encoding)))
(encoding-named name)

The encoding a name means, as a charset header would give it.

name
A name, in any case: the names this module exports, and every name and alias .NET knows (latin1, cp1252, Shift-JIS, unicodeFFFE).
returns
(Some encoding), or None for a name nothing knows.
(encoding-named "Windows-1252")   ; (Some windows-1252)
(encoding-named "latin1")         ; (Some iso-8859-1)
(encoding-named "utf-7")          ; None

Space around the name is ignored. .NET’s own names come after this module’s, so utf-16 means what .NET means by it, little-endian. The value is the same object the module exports under its own name.

See also: encoding-name, encoding-of-code-page

encoding-of-code-page

function ↑ Functions

(: encoding-of-code-page (-> int (Option Encoding)))
(encoding-of-code-page code-page)

The encoding of a Windows code page number.

code-page
The number: 1252, 862, 65001.
returns
(Some encoding), or None for a number no encoding has.
(encoding-of-code-page 862)     ; (Some dos-862)
(encoding-of-code-page 65000)   ; None: UTF-7

See also: encoding-named, encoding-name

encoding-name

function ↑ Functions

(: encoding-name (-> Encoding string))
(encoding-name encoding)

The name this module exports an encoding under.

encoding
An encoding.
returns
Its name here, or .NET's name for it in lower case for one made elsewhere.
(encoding-name windows-1252)   ; "windows-1252"
(encoding-name utf-16le)       ; "utf-16le"

See also: encoding-named

Values

asmo-708

value ↑ Values

Arabic (ASMO 708), code page 708.

See also: encoding-named, encoding-name

big5

value ↑ Values

Chinese Traditional (Big5), code page 950.

See also: encoding-named, encoding-name

cp1025

value ↑ Values

IBM EBCDIC (Cyrillic Serbian-Bulgarian), code page 21025.

See also: encoding-named, encoding-name

cp20932

value ↑ Values

Japanese (JIS 0208-1990 and 0212-1990), code page 20932.

See also: encoding-named, encoding-name

cp50222

value ↑ Values

Japanese (JIS-Allow 1 byte Kana - SO/SI), code page 50222.

See also: encoding-named, encoding-name

cp866

value ↑ Values

Cyrillic (DOS), code page 866.

See also: encoding-named, encoding-name

cp875

value ↑ Values

IBM EBCDIC (Greek Modern), code page 875.

See also: encoding-named, encoding-name

csiso2022jp

value ↑ Values

Japanese (JIS-Allow 1 byte Kana), code page 50221.

See also: encoding-named, encoding-name

dos-720

value ↑ Values

Arabic (DOS), code page 720.

See also: encoding-named, encoding-name

dos-862

value ↑ Values

Hebrew (DOS), code page 862.

See also: encoding-named, encoding-name

euc-cn

value ↑ Values

Chinese Simplified (EUC), code page 51936.

See also: encoding-named, encoding-name

euc-jp

value ↑ Values

Japanese (EUC), code page 51932.

See also: encoding-named, encoding-name

euc-kr

value ↑ Values

Korean (EUC), code page 51949.

See also: encoding-named, encoding-name

gb18030

value ↑ Values

Chinese Simplified (GB18030), code page 54936.

See also: encoding-named, encoding-name

gb2312

value ↑ Values

Chinese Simplified (GB2312), code page 936.

See also: encoding-named, encoding-name

hz-gb-2312

value ↑ Values

Chinese Simplified (HZ), code page 52936.

See also: encoding-named, encoding-name

ibm-thai

value ↑ Values

IBM EBCDIC (Thai), code page 20838.

See also: encoding-named, encoding-name

ibm00858

value ↑ Values

OEM Multilingual Latin I, code page 858.

See also: encoding-named, encoding-name

ibm00924

value ↑ Values

IBM Latin-1, code page 20924.

See also: encoding-named, encoding-name

ibm01047

value ↑ Values

IBM Latin-1, code page 1047.

See also: encoding-named, encoding-name

ibm01140

value ↑ Values

IBM EBCDIC (US-Canada-Euro), code page 1140.

See also: encoding-named, encoding-name

ibm01141

value ↑ Values

IBM EBCDIC (Germany-Euro), code page 1141.

See also: encoding-named, encoding-name

ibm01142

value ↑ Values

IBM EBCDIC (Denmark-Norway-Euro), code page 1142.

See also: encoding-named, encoding-name

ibm01143

value ↑ Values

IBM EBCDIC (Finland-Sweden-Euro), code page 1143.

See also: encoding-named, encoding-name

ibm01144

value ↑ Values

IBM EBCDIC (Italy-Euro), code page 1144.

See also: encoding-named, encoding-name

ibm01145

value ↑ Values

IBM EBCDIC (Spain-Euro), code page 1145.

See also: encoding-named, encoding-name

ibm01146

value ↑ Values

IBM EBCDIC (UK-Euro), code page 1146.

See also: encoding-named, encoding-name

ibm01147

value ↑ Values

IBM EBCDIC (France-Euro), code page 1147.

See also: encoding-named, encoding-name

ibm01148

value ↑ Values

IBM EBCDIC (International-Euro), code page 1148.

See also: encoding-named, encoding-name

ibm01149

value ↑ Values

IBM EBCDIC (Icelandic-Euro), code page 1149.

See also: encoding-named, encoding-name

ibm037

value ↑ Values

IBM EBCDIC (US-Canada), code page 37.

See also: encoding-named, encoding-name

ibm1026

value ↑ Values

IBM EBCDIC (Turkish Latin-5), code page 1026.

See also: encoding-named, encoding-name

ibm273

value ↑ Values

IBM EBCDIC (Germany), code page 20273.

See also: encoding-named, encoding-name

ibm277

value ↑ Values

IBM EBCDIC (Denmark-Norway), code page 20277.

See also: encoding-named, encoding-name

ibm278

value ↑ Values

IBM EBCDIC (Finland-Sweden), code page 20278.

See also: encoding-named, encoding-name

ibm280

value ↑ Values

IBM EBCDIC (Italy), code page 20280.

See also: encoding-named, encoding-name

ibm284

value ↑ Values

IBM EBCDIC (Spain), code page 20284.

See also: encoding-named, encoding-name

ibm285

value ↑ Values

IBM EBCDIC (UK), code page 20285.

See also: encoding-named, encoding-name

ibm290

value ↑ Values

IBM EBCDIC (Japanese katakana), code page 20290.

See also: encoding-named, encoding-name

ibm297

value ↑ Values

IBM EBCDIC (France), code page 20297.

See also: encoding-named, encoding-name

ibm420

value ↑ Values

IBM EBCDIC (Arabic), code page 20420.

See also: encoding-named, encoding-name

ibm423

value ↑ Values

IBM EBCDIC (Greek), code page 20423.

See also: encoding-named, encoding-name

ibm424

value ↑ Values

IBM EBCDIC (Hebrew), code page 20424.

See also: encoding-named, encoding-name

ibm437

value ↑ Values

OEM United States, code page 437.

See also: encoding-named, encoding-name

ibm500

value ↑ Values

IBM EBCDIC (International), code page 500.

See also: encoding-named, encoding-name

ibm737

value ↑ Values

Greek (DOS), code page 737.

See also: encoding-named, encoding-name

ibm775

value ↑ Values

Baltic (DOS), code page 775.

See also: encoding-named, encoding-name

ibm850

value ↑ Values

Western European (DOS), code page 850.

See also: encoding-named, encoding-name

ibm852

value ↑ Values

Central European (DOS), code page 852.

See also: encoding-named, encoding-name

ibm855

value ↑ Values

OEM Cyrillic, code page 855.

See also: encoding-named, encoding-name

ibm857

value ↑ Values

Turkish (DOS), code page 857.

See also: encoding-named, encoding-name

ibm860

value ↑ Values

Portuguese (DOS), code page 860.

See also: encoding-named, encoding-name

ibm861

value ↑ Values

Icelandic (DOS), code page 861.

See also: encoding-named, encoding-name

ibm863

value ↑ Values

French Canadian (DOS), code page 863.

See also: encoding-named, encoding-name

ibm864

value ↑ Values

Arabic (864), code page 864.

See also: encoding-named, encoding-name

ibm865

value ↑ Values

Nordic (DOS), code page 865.

See also: encoding-named, encoding-name

ibm869

value ↑ Values

Greek, Modern (DOS), code page 869.

See also: encoding-named, encoding-name

ibm870

value ↑ Values

IBM EBCDIC (Multilingual Latin-2), code page 870.

See also: encoding-named, encoding-name

ibm871

value ↑ Values

IBM EBCDIC (Icelandic), code page 20871.

See also: encoding-named, encoding-name

ibm880

value ↑ Values

IBM EBCDIC (Cyrillic Russian), code page 20880.

See also: encoding-named, encoding-name

ibm905

value ↑ Values

IBM EBCDIC (Turkish), code page 20905.

See also: encoding-named, encoding-name

iso-2022-jp

value ↑ Values

Japanese (JIS), code page 50220.

See also: encoding-named, encoding-name

iso-2022-kr

value ↑ Values

Korean (ISO), code page 50225.

See also: encoding-named, encoding-name

iso-8859-1

value ↑ Values

Western European (ISO), code page 28591.

See also: encoding-named, encoding-name

iso-8859-13

value ↑ Values

Estonian (ISO), code page 28603.

See also: encoding-named, encoding-name

iso-8859-15

value ↑ Values

Latin 9 (ISO), code page 28605.

See also: encoding-named, encoding-name

iso-8859-2

value ↑ Values

Central European (ISO), code page 28592.

See also: encoding-named, encoding-name

iso-8859-3

value ↑ Values

Latin 3 (ISO), code page 28593.

See also: encoding-named, encoding-name

iso-8859-4

value ↑ Values

Baltic (ISO), code page 28594.

See also: encoding-named, encoding-name

iso-8859-5

value ↑ Values

Cyrillic (ISO), code page 28595.

See also: encoding-named, encoding-name

iso-8859-6

value ↑ Values

Arabic (ISO), code page 28596.

See also: encoding-named, encoding-name

iso-8859-7

value ↑ Values

Greek (ISO), code page 28597.

See also: encoding-named, encoding-name

iso-8859-8

value ↑ Values

Hebrew (ISO-Visual), code page 28598.

See also: encoding-named, encoding-name

iso-8859-8-i

value ↑ Values

Hebrew (ISO-Logical), code page 38598.

See also: encoding-named, encoding-name

iso-8859-9

value ↑ Values

Turkish (ISO), code page 28599.

See also: encoding-named, encoding-name

johab

value ↑ Values

Korean (Johab), code page 1361.

See also: encoding-named, encoding-name

koi8-r

value ↑ Values

Cyrillic (KOI8-R), code page 20866.

See also: encoding-named, encoding-name

koi8-u

value ↑ Values

Cyrillic (KOI8-U), code page 21866.

See also: encoding-named, encoding-name

ks_c_5601-1987

value ↑ Values

Korean, code page 949.

See also: encoding-named, encoding-name

macintosh

value ↑ Values

Western European (Mac), code page 10000.

See also: encoding-named, encoding-name

shift_jis

value ↑ Values

Japanese (Shift-JIS), code page 932.

See also: encoding-named, encoding-name

us-ascii

value ↑ Values

US-ASCII, code page 20127.

See also: encoding-named, encoding-name

utf-16be

value ↑ Values

Unicode, UTF-16 big-endian, code page 1201.

See also: encoding-named, encoding-name

utf-16le

value ↑ Values

Unicode, UTF-16 little-endian, code page 1200.

See also: encoding-named, encoding-name

utf-32be

value ↑ Values

Unicode, UTF-32 big-endian, code page 12001.

See also: encoding-named, encoding-name

utf-32le

value ↑ Values

Unicode, UTF-32 little-endian, code page 12000.

See also: encoding-named, encoding-name

utf-8

value ↑ Values

Unicode, UTF-8, code page 65001.

See also: encoding-named, encoding-name

windows-1250

value ↑ Values

Central European (Windows), code page 1250.

See also: encoding-named, encoding-name

windows-1251

value ↑ Values

Cyrillic (Windows), code page 1251.

See also: encoding-named, encoding-name

windows-1252

value ↑ Values

Western European (Windows), code page 1252.

See also: encoding-named, encoding-name

windows-1253

value ↑ Values

Greek (Windows), code page 1253.

See also: encoding-named, encoding-name

windows-1254

value ↑ Values

Turkish (Windows), code page 1254.

See also: encoding-named, encoding-name

windows-1255

value ↑ Values

Hebrew (Windows), code page 1255.

See also: encoding-named, encoding-name

windows-1256

value ↑ Values

Arabic (Windows), code page 1256.

See also: encoding-named, encoding-name

windows-1257

value ↑ Values

Baltic (Windows), code page 1257.

See also: encoding-named, encoding-name

windows-1258

value ↑ Values

Vietnamese (Windows), code page 1258.

See also: encoding-named, encoding-name

windows-874

value ↑ Values

Thai (Windows), code page 874.

See also: encoding-named, encoding-name

x-chinese-cns

value ↑ Values

Chinese Traditional (CNS), code page 20000.

See also: encoding-named, encoding-name

x-chinese-eten

value ↑ Values

Chinese Traditional (Eten), code page 20002.

See also: encoding-named, encoding-name

x-cp20001

value ↑ Values

TCA Taiwan, code page 20001.

See also: encoding-named, encoding-name

x-cp20003

value ↑ Values

IBM5550 Taiwan, code page 20003.

See also: encoding-named, encoding-name

x-cp20004

value ↑ Values

TeleText Taiwan, code page 20004.

See also: encoding-named, encoding-name

x-cp20005

value ↑ Values

Wang Taiwan, code page 20005.

See also: encoding-named, encoding-name

x-cp20261

value ↑ Values

T.61, code page 20261.

See also: encoding-named, encoding-name

x-cp20269

value ↑ Values

ISO-6937, code page 20269.

See also: encoding-named, encoding-name

x-cp20936

value ↑ Values

Chinese Simplified (GB2312-80), code page 20936.

See also: encoding-named, encoding-name

x-cp20949

value ↑ Values

Korean Wansung, code page 20949.

See also: encoding-named, encoding-name

x-cp50227

value ↑ Values

Chinese Simplified (ISO-2022), code page 50227.

See also: encoding-named, encoding-name

x-ebcdic-koreanextended

value ↑ Values

IBM EBCDIC (Korean Extended), code page 20833.

See also: encoding-named, encoding-name

x-europa

value ↑ Values

Europa, code page 29001.

See also: encoding-named, encoding-name

x-ia5

value ↑ Values

Western European (IA5), code page 20105.

See also: encoding-named, encoding-name

x-ia5-german

value ↑ Values

German (IA5), code page 20106.

See also: encoding-named, encoding-name

x-ia5-norwegian

value ↑ Values

Norwegian (IA5), code page 20108.

See also: encoding-named, encoding-name

x-ia5-swedish

value ↑ Values

Swedish (IA5), code page 20107.

See also: encoding-named, encoding-name

x-iscii-as

value ↑ Values

ISCII Assamese, code page 57006.

See also: encoding-named, encoding-name

x-iscii-be

value ↑ Values

ISCII Bengali, code page 57003.

See also: encoding-named, encoding-name

x-iscii-de

value ↑ Values

ISCII Devanagari, code page 57002.

See also: encoding-named, encoding-name

x-iscii-gu

value ↑ Values

ISCII Gujarati, code page 57010.

See also: encoding-named, encoding-name

x-iscii-ka

value ↑ Values

ISCII Kannada, code page 57008.

See also: encoding-named, encoding-name

x-iscii-ma

value ↑ Values

ISCII Malayalam, code page 57009.

See also: encoding-named, encoding-name

x-iscii-or

value ↑ Values

ISCII Oriya, code page 57007.

See also: encoding-named, encoding-name

x-iscii-pa

value ↑ Values

ISCII Punjabi, code page 57011.

See also: encoding-named, encoding-name

x-iscii-ta

value ↑ Values

ISCII Tamil, code page 57004.

See also: encoding-named, encoding-name

x-iscii-te

value ↑ Values

ISCII Telugu, code page 57005.

See also: encoding-named, encoding-name

x-mac-arabic

value ↑ Values

Arabic (Mac), code page 10004.

See also: encoding-named, encoding-name

x-mac-ce

value ↑ Values

Central European (Mac), code page 10029.

See also: encoding-named, encoding-name

x-mac-chinesesimp

value ↑ Values

Chinese Simplified (Mac), code page 10008.

See also: encoding-named, encoding-name

x-mac-chinesetrad

value ↑ Values

Chinese Traditional (Mac), code page 10002.

See also: encoding-named, encoding-name

x-mac-croatian

value ↑ Values

Croatian (Mac), code page 10082.

See also: encoding-named, encoding-name

x-mac-cyrillic

value ↑ Values

Cyrillic (Mac), code page 10007.

See also: encoding-named, encoding-name

x-mac-greek

value ↑ Values

Greek (Mac), code page 10006.

See also: encoding-named, encoding-name

x-mac-hebrew

value ↑ Values

Hebrew (Mac), code page 10005.

See also: encoding-named, encoding-name

x-mac-icelandic

value ↑ Values

Icelandic (Mac), code page 10079.

See also: encoding-named, encoding-name

x-mac-japanese

value ↑ Values

Japanese (Mac), code page 10001.

See also: encoding-named, encoding-name

x-mac-korean

value ↑ Values

Korean (Mac), code page 10003.

See also: encoding-named, encoding-name

x-mac-romanian

value ↑ Values

Romanian (Mac), code page 10010.

See also: encoding-named, encoding-name

x-mac-thai

value ↑ Values

Thai (Mac), code page 10021.

See also: encoding-named, encoding-name

x-mac-turkish

value ↑ Values

Turkish (Mac), code page 10081.

See also: encoding-named, encoding-name

x-mac-ukrainian

value ↑ Values

Ukrainian (Mac), code page 10017.

See also: encoding-named, encoding-name