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
asmo-708big5cp1025cp20932cp50222cp866cp875csiso2022jpdos-720dos-862euc-cneuc-jpeuc-krgb18030gb2312hz-gb-2312ibm-thaiibm00858ibm00924ibm01047ibm01140ibm01141ibm01142ibm01143ibm01144ibm01145ibm01146ibm01147ibm01148ibm01149ibm037ibm1026ibm273ibm277ibm278ibm280ibm284ibm285ibm290ibm297ibm420ibm423ibm424ibm437ibm500ibm737ibm775ibm850ibm852ibm855ibm857ibm860ibm861ibm863ibm864ibm865ibm869ibm870ibm871ibm880ibm905iso-2022-jpiso-2022-kriso-8859-1iso-8859-13iso-8859-15iso-8859-2iso-8859-3iso-8859-4iso-8859-5iso-8859-6iso-8859-7iso-8859-8iso-8859-8-iiso-8859-9johabkoi8-rkoi8-uks_c_5601-1987macintoshshift_jisus-asciiutf-16beutf-16leutf-32beutf-32leutf-8windows-1250windows-1251windows-1252windows-1253windows-1254windows-1255windows-1256windows-1257windows-1258windows-874x-chinese-cnsx-chinese-etenx-cp20001x-cp20003x-cp20004x-cp20005x-cp20261x-cp20269x-cp20936x-cp20949x-cp50227x-ebcdic-koreanextendedx-europax-ia5x-ia5-germanx-ia5-norwegianx-ia5-swedishx-iscii-asx-iscii-bex-iscii-dex-iscii-gux-iscii-kax-iscii-max-iscii-orx-iscii-pax-iscii-tax-iscii-tex-mac-arabicx-mac-cex-mac-chinesesimpx-mac-chinesetradx-mac-croatianx-mac-cyrillicx-mac-greekx-mac-hebrewx-mac-icelandicx-mac-japanesex-mac-koreanx-mac-romanianx-mac-thaix-mac-turkishx-mac-ukrainian
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
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
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
euc-cn
value ↑ Values
Chinese Simplified (EUC), code page 51936.
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
ibm00858
value ↑ Values
OEM Multilingual Latin I, code page 858.
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
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
ibm290
value ↑ Values
IBM EBCDIC (Japanese katakana), code page 20290.
See also: encoding-named, encoding-name
ibm500
value ↑ Values
IBM EBCDIC (International), code page 500.
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
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-8859-1
value ↑ Values
Western European (ISO), code page 28591.
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-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
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
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
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
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-cp20936
value ↑ Values
Chinese Simplified (GB2312-80), code page 20936.
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-ia5
value ↑ Values
Western European (IA5), code page 20105.
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-de
value ↑ Values
ISCII Devanagari, code page 57002.
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-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-romanian
value ↑ Values
Romanian (Mac), code page 10010.
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