Jump to content

Edit filter log

Details for log entry 27429939

06:08, 15 August 2020: 2601:cd:4004:e060:c12c:14b2:a22b:f36a (talk) triggered filter 61, performing the action "edit" on Binary-to-text encoding. Actions taken: Tag; Filter description: New user removing references (examine)

Changes made in edit

Some other encodings ([[base64]], [[uuencoding]]) are based on mapping all possible sequences of six [[bit]]s into different printable characters. Since there are more than 2<sup>6</sup>&nbsp;=&nbsp;64 printable characters, this is possible. A given sequence of bytes is translated by viewing it as stream of bits, breaking this stream in chunks of six bits and generating the sequence of corresponding characters. The different encodings differ in the mapping between sequences of bits and characters and in how the resulting text is formatted.
Some other encodings ([[base64]], [[uuencoding]]) are based on mapping all possible sequences of six [[bit]]s into different printable characters. Since there are more than 2<sup>6</sup>&nbsp;=&nbsp;64 printable characters, this is possible. A given sequence of bytes is translated by viewing it as stream of bits, breaking this stream in chunks of six bits and generating the sequence of corresponding characters. The different encodings differ in the mapping between sequences of bits and characters and in how the resulting text is formatted.


Some encodings (the original version of BinHex and the recommended encoding for [[CipherSaber]]) use four bits instead of six, mapping all possible sequences of 4 bits onto the 16 standard [[hexadecimal]] digits.
Some encodings (the original version of BinHex and the recommended encoding for [[CipherSaber]]) use four
Using 4 bits per encoded character leads to a 50% longer output than base64, but simplifies encoding and decoding—expanding each byte in the source independently to two encoded bytes is simpler than base64's expanding 3 source bytes to 4 encoded bytes.

Out of [[PETSCII]]'s first 192 codes, 164 have visible representations when quoted: 5 (white), 17–20 and 28–31 (colors and cursor controls), 32–90 (ascii equivalent), 91–127 (graphics), 129 (orange), 133–140 (function keys), 144–159 (colors and cursor controls), and 160–192 (graphics).<ref>http://sta.c64.org/cbm64pet.html et al</ref> This theoretically permits encodings, such as base128, between PETSCII-speaking machines.

== Notes ==
{{Notelist}}

== References ==
{{Reflist}}

[[Category:Binary-to-text encoding formats| ]]
[[Category:Computer file formats]]
[[Category:Character encoding]]

Action parameters

VariableValue
Edit count of the user (user_editcount)
null
Name of the user account (user_name)
'2601:CD:4004:E060:C12C:14B2:A22B:F36A'
Age of the user account (user_age)
0
Groups (including implicit) the user is in (user_groups)
[ 0 => '*' ]
Rights that the user has (user_rights)
[ 0 => 'createaccount', 1 => 'read', 2 => 'edit', 3 => 'createtalk', 4 => 'writeapi', 5 => 'viewmywatchlist', 6 => 'editmywatchlist', 7 => 'viewmyprivateinfo', 8 => 'editmyprivateinfo', 9 => 'editmyoptions', 10 => 'abusefilter-log-detail', 11 => 'urlshortener-create-url', 12 => 'centralauth-merge', 13 => 'abusefilter-view', 14 => 'abusefilter-log', 15 => 'vipsscaler-test' ]
Whether the user is editing from mobile app (user_app)
false
Whether or not a user is editing through the mobile interface (user_mobile)
false
Page ID (page_id)
3282778
Page namespace (page_namespace)
0
Page title without namespace (page_title)
'Binary-to-text encoding'
Full page title (page_prefixedtitle)
'Binary-to-text encoding'
Edit protection level of the page (page_restrictions_edit)
[]
Last ten users to contribute to the page (page_recent_contributors)
[ 0 => '222.153.155.22', 1 => 'TimothyBlue', 2 => 'Matthiaspaul', 3 => 'Sbmeirow', 4 => 'Bdijkstra', 5 => '5.117.85.224', 6 => 'XLinkBot', 7 => 'Mominul2016', 8 => '2A02:C7F:8A3A:700:143F:9324:CD2D:2FD2', 9 => '90.9.200.122' ]
Page age in seconds (page_age)
464109297
Action (action)
'edit'
Edit summary/reason (summary)
'Tektronix hex]] || Arbitrary || || || Typically used to program [[EPROM]], [[Flash memory|NOR-Flash]] memory chips. |- | [[Uuencoding]] || Arbitrary || data-sort-value="60%"|~60% ([[Uuencoding#Disadvantages|up to 70%]]) || [[Uuencoding#Support in Perl|Perl]], [http://www.fpx.de/fp/Software/UUDeview/ C], [https://github.com/frohoff/jdk8u-dev-jdk/blob/master/src/share/classes/sun/misc/UUEncoder.java Java], probably many others || Largely replaced by MIME and yEnc |- | [[Xxencoding]] || Arbitrary |'
Old content model (old_content_model)
'wikitext'
New content model (new_content_model)
'wikitext'
Old page wikitext, before the edit (old_wikitext)
'{{Multiple issues| {{original research|date=April 2010}} {{refimprove|date=December 2012}} }} {{anchor|ASCII armor}} A '''binary-to-text encoding''' is [[code|encoding]] of [[data (computing)|data]] in [[plain text]]. More precisely, it is an encoding of binary data in a sequence of [[character (computing)|printable characters]]. These encodings are necessary for transmission of data when the channel does not allow binary data (such as [[email]] or [[NNTP]]) or is not [[8-bit clean]]. [[Pretty Good Privacy|PGP]] documentation ({{IETF RFC|4880}}) uses the term "'''ASCII armor'''" for binary-to-text encoding when referring to [[Base64]]. ==Description== The [[ASCII]] text-encoding standard uses 128 unique values (0–127) to represent the alphabetic, numeric, and punctuation characters commonly used in [[English language|English]], plus a selection of [[C0 and C1 control codes|control codes]] which do not represent [[graphic character|printable characters]]. For example, the capital letter ''A'' is ASCII character 65, the numeral ''2'' is ASCII 50, the character ''<nowiki>}</nowiki>'' is ASCII 125, and the [[metacharacter]] ''carriage return'' is ASCII 13. Systems based on ASCII use seven bits to represent these values digitally. In contrast, most computers store data in memory organized in eight-bit [[byte]]s. Files that contain machine-executable code and non-textual data typically contain all 256 possible eight-bit byte values. Many computer programs came to rely on this distinction between seven-bit ''text'' and eight-bit ''binary'' data, and would not function properly if non-ASCII characters appeared in data that was expected to include only ASCII text. For example, if the value of the eighth bit is not preserved, the program might interpret a byte value above 127 as a flag telling it to perform some function. It is often desirable, however, to be able to send non-textual data through text-based systems, such as when one might attach an image file to an e-mail message. To accomplish this, the data is encoded in some way, such that eight-bit data is encoded into seven-bit ASCII characters (generally using only alphanumeric and punctuation characters—the [[ASCII#ASCII printable characters|ASCII printable characters]]). Upon safe arrival at its destination, it is then decoded back to its eight-bit form. This process is referred to as binary to text encoding. Many programs perform this conversion to allow for data-transport, such as [[Pretty Good Privacy|PGP]] and [[GNU Privacy Guard]] (GPG). ==Encoding plain text== Binary-to-text encoding methods are also used as a mechanism for encoding [[plain text]]. For example: * Some systems have a more limited character set they can handle; not only are they not [[8-bit clean]], some cannot even handle every printable ASCII character. * Other systems have limits on the number of characters that may appear between [[line break (computing)|line break]]s, such as the "1000 characters per line" limit of some [[SMTP]] software, as allowed by {{IETF RFC|2821}}. * Still others add [[header (computing)|header]]s or [[trailer (information technology)|trailer]]s to the text. * A few poorly-regarded but still-used protocols use [[in-band signaling]], causing confusion if specific patterns appear in the message. The best-known is the string "From&nbsp;" (including trailing space) at the beginning of a line used to separate mail messages in the [[mbox]] file format. By using a binary-to-text encoding on messages that are already plain text, then decoding on the other end, one can make such systems appear to be completely [[Transparency (telecommunication)|transparent]]. This is sometimes referred to as 'ASCII armoring'. For example, the ViewState component of [[ASP.NET]] uses [[base64]] encoding to safely transmit text via HTTP POST, in order to avoid [[delimiter collision]]. {{See also|Delimiter#ASCII armor|Return-to-libc attack#Protection from return-to-libc attacks}} == Encoding standards == The table below compares the most used forms of binary-to-text encodings. The efficiency listed is the ratio between number of bits in the input and the number of bits in the encoded output. {| class="wikitable sortable" |- ! Encoding !! Data type !! Efficiency !! Programming language implementations !! Comments |- | [[Ascii85]] || Arbitrary || 80% || [http://sites.google.com/site/dannychouinard/Home/unix-linux-trinkets/little-utilities/base64-and-base85-encoding-awk-scripts awk], [http://www.ibiblio.org/pub/packages/ccic/software/unix/utils/btoa.c C], [https://github.com/woolstar/test/blob/master/encode/asc85.c C (2)], [http://www.codinghorror.com/blog/2005/10/c-implementation-of-ascii85.html C#], [http://blog.wezeku.com/2010/07/01/f-ascii85-module/ F#], [http://golang.org/pkg/encoding/ascii85/ Go], [https://web.archive.org/web/20160304035222/http://java.freehep.org/freehep-io/apidocs/org/freehep/util/io/ASCII85.html Java] [https://metacpan.org/pod/Convert::Ascii85 Perl], [https://docs.python.org/dev/library/base64.html#base64.a85encode Python], [https://code.google.com/p/python-mom/source/browse/mom/codec/base85.py Python (2)] || There exist several variants of this encoding, [[Base85]], [[btoa]], et cetera. |- | [[Base32]] || Arbitrary || 62.5% || [http://sourceforge.net/projects/cyoencode/ ANSI C], [http://commons.apache.org/codec/ Java], [https://docs.python.org/dev/library/base64.html#base64.b32encode Python] || {{space}} |- | [[Base36]] || Integer || data-sort-value="64%"|~64% || [[Base36#bash implementation|bash]], [[Base36#C implementation|C]], [[Base36#C.2B.2B implementation|C++]], [[Base36#C.23 implementation|C#]], [[Base36#Java implementation|Java]], [[Base36#Perl implementation|Perl]], [[Base36#PHP implementation|PHP]], [[Base36#Python implementation|Python]], [[Base36#Visual Basic implementation|Visual Basic]], [[Base36#Swift implementation|Swift]], many others |Uses the [[Arabic numerals]] 0–9 and the [[Latin alphabet|Latin letters]] A–Z (the [[ISO basic Latin alphabet]]). Commonly used by [[URL redirection]] systems like [[TinyURL]] or SnipURL/Snipr as compact alphanumeric identifiers. |- | [[Base58]] || Integer || data-sort-value="73%"|~73% || [https://github.com/bitcoin/bitcoin/blob/master/src/base58.h C++], [https://pypi.python.org/pypi/base58 Python] || Similar to Base64, but modified to avoid both non-alphanumeric characters and letters which might look ambiguous when printed. |- | [[Base64]] || Arbitrary || 75% || [http://sites.google.com/site/dannychouinard/Home/unix-linux-trinkets/little-utilities/base64-and-base85-encoding-awk-scripts awk], [http://base64.sourceforge.net/ C], [http://www.fpx.de/fp/Software/UUDeview/ C (2)], [https://docs.python.org/dev/library/base64.html#base64.b64encode Python], many others || {{space}} |- | [[Base85]] ({{IETF RFC|1924}}) || Arbitrary || 80% || [https://github.com/woolstar/test/blob/master/encode/base85.c C], [https://docs.python.org/dev/library/base64.html#base64.b85encode Python] [https://code.google.com/p/python-mom/source/browse/mom/codec/base85.py Python (2)] || Revised version of [[Ascii85]]. |- | [[BinHex]] || Arbitrary || 75%|| [http://metacpan.org/module/Convert::BinHex Perl], [http://www.fpx.de/fp/Software/UUDeview/ C], [http://ibiblio.org/pub/linux/utils/compress/macutils.tar.gz C (2)] || MacOS Classic |- | [[Decimal#Decimal computation|Decimal]] || Integer || data-sort-value="42%"|~42% || Most languages || Usually the default representation for input/output from/to humans. |- | [[Hexadecimal#Transfer encoding|Hexadecimal]] (Base16) || Arbitrary || 50% || Most languages || Exists in [[uppercase]] and [[Letter_case#All_lowercase|lowercase]] variants |- | [[Intel HEX]] || Arbitrary || data-sort-value="50%"|~&lt;50% || [https://github.com/vsergeev/libGIS C library], [http://srecord.sourceforge.net/ C++] || Typically used to program [[EPROM]], [[Flash memory|NOR-Flash]] memory chips |- | [[MIME]] || Arbitrary || See [[Quoted-printable]] and [[Base64]] || See [[Quoted-printable]] and [[Base64]] || Encoding container for e-mail-like formatting |- | [[MOS Technology file format]] || Arbitrary || || || Typically used to program [[EPROM]], [[Flash memory|NOR-Flash]] memory chips. |- | [[Percent encoding]] || Text ([[URI]]s), Arbitrary ([https://tools.ietf.org/html/rfc1738 RFC1738]) || data-sort-value="40%"|~40%{{efn|For arbitrary data; encoding all 189 non-unreserved characters with three bytes, and the remaining 66 characters with one.}} (33–70%{{efn|For text; only encoding each of the 18 reserved characters.}}) || [http://www.geekhideout.com/urlcode.shtml C], [https://docs.python.org/3/library/urllib.parse.html#module-urllib.parse Python], probably many others || {{space}} |- | [[Quoted-printable]] || Text || data-sort-value="33%"|~33–100%{{efn|1= One byte stored as =XX. Encoding all but the 94 characters which don't need it (incl. space and tab).}} || Probably many || Preserves line breaks; cuts lines at 76 characters |- | [[S-record]] (Motorola hex) || Arbitrary || 49.6% || [https://github.com/vsergeev/libGIS C library], [http://srecord.sourceforge.net/ C++] || Typically used to program [[EPROM]], [[Flash memory|NOR-Flash]] memory chips. 49.6% assumes 255 binary bytes per record. |- | [[Tektronix hex]] || Arbitrary || || || Typically used to program [[EPROM]], [[Flash memory|NOR-Flash]] memory chips. |- | [[Uuencoding]] || Arbitrary || data-sort-value="60%"|~60% ([[Uuencoding#Disadvantages|up to 70%]]) || [[Uuencoding#Support in Perl|Perl]], [http://www.fpx.de/fp/Software/UUDeview/ C], [https://github.com/frohoff/jdk8u-dev-jdk/blob/master/src/share/classes/sun/misc/UUEncoder.java Java], probably many others || Largely replaced by MIME and yEnc |- | [[Xxencoding]] || Arbitrary || data-sort-value="75%"|~75% (similar to Uuencoding) || [http://www.fpx.de/fp/Software/UUDeview/ C] || Proposed (and occasionally used) as replacement for Uuencoding to avoid character set translation problems between ASCII and the EBCDIC systems that could corrupt Uuencoded data |- | [[yEnc]] || Arbitrary, mostly non-text || data-sort-value="98%"|~98% || [http://www.fpx.de/fp/Software/UUDeview/ C] || Includes a CRC checksum |- |- | {{IETF RFC|1751}} ([[S/KEY]]) || Arbitrary || 33% || C,<ref name="RFC1760" /> [https://www.dlitz.net/software/pycrypto/doc/#crypto-util-rfc1751 Python], ... | "A Convention for [[Human-readable]] 128-bit Keys". A series of small English words is easier for humans to read, remember, and type in than decimal or other binary-to-text encoding systems.<ref> {{IETF RFC|1751}} "A Convention for Human-Readable 128-bit Keys" </ref> Each 64-bit number is mapped to six short words, of one to four characters each, from a public 2048-word dictionary.<ref name="RFC1760" > {{IETF RFC|1760}} "The S/KEY One-Time Password System". </ref> |- |} The 95 [[isprint]] codes 32 to 126 are known as the [[ASCII printable characters]]. Some older and today uncommon formats include BOO, [[BTOA]], and USR encoding. Most of these encodings generate text containing only a subset of all [[ASCII]] printable characters: for example, the [[base64]] encoding generates text that only contains upper case and lower case letters, (A–Z, a–z), numerals (0–9), and the "+", "/", and "=" symbols. Some of these encoding (quoted-printable and percent encoding) are based on a set of allowed characters and a single [[escape character]]. The allowed characters are left unchanged, while all other characters are converted into a string starting with the escape character. This kind of conversion allows the resulting text to be almost readable, in that letters and digits are part of the allowed characters, and are therefore left as they are in the encoded text. These encodings produce the shortest plain ASCII output for input that is mostly printable ASCII. Some other encodings ([[base64]], [[uuencoding]]) are based on mapping all possible sequences of six [[bit]]s into different printable characters. Since there are more than 2<sup>6</sup>&nbsp;=&nbsp;64 printable characters, this is possible. A given sequence of bytes is translated by viewing it as stream of bits, breaking this stream in chunks of six bits and generating the sequence of corresponding characters. The different encodings differ in the mapping between sequences of bits and characters and in how the resulting text is formatted. Some encodings (the original version of BinHex and the recommended encoding for [[CipherSaber]]) use four bits instead of six, mapping all possible sequences of 4 bits onto the 16 standard [[hexadecimal]] digits. Using 4 bits per encoded character leads to a 50% longer output than base64, but simplifies encoding and decoding—expanding each byte in the source independently to two encoded bytes is simpler than base64's expanding 3 source bytes to 4 encoded bytes. Out of [[PETSCII]]'s first 192 codes, 164 have visible representations when quoted: 5 (white), 17–20 and 28–31 (colors and cursor controls), 32–90 (ascii equivalent), 91–127 (graphics), 129 (orange), 133–140 (function keys), 144–159 (colors and cursor controls), and 160–192 (graphics).<ref>http://sta.c64.org/cbm64pet.html et al</ref> This theoretically permits encodings, such as base128, between PETSCII-speaking machines. == Notes == {{Notelist}} == References == {{Reflist}} [[Category:Binary-to-text encoding formats| ]] [[Category:Computer file formats]] [[Category:Character encoding]]'
New page wikitext, after the edit (new_wikitext)
'{{Multiple issues| {{original research|date=April 2010}} {{refimprove|date=December 2012}} }} {{anchor|ASCII armor}} A '''binary-to-text encoding''' is [[code|encoding]] of [[data (computing)|data]] in [[plain text]]. More precisely, it is an encoding of binary data in a sequence of [[character (computing)|printable characters]]. These encodings are necessary for transmission of data when the channel does not allow binary data (such as [[email]] or [[NNTP]]) or is not [[8-bit clean]]. [[Pretty Good Privacy|PGP]] documentation ({{IETF RFC|4880}}) uses the term "'''ASCII armor'''" for binary-to-text encoding when referring to [[Base64]]. ==Description== The [[ASCII]] text-encoding standard uses 128 unique values (0–127) to represent the alphabetic, numeric, and punctuation characters commonly used in [[English language|English]], plus a selection of [[C0 and C1 control codes|control codes]] which do not represent [[graphic character|printable characters]]. For example, the capital letter ''A'' is ASCII character 65, the numeral ''2'' is ASCII 50, the character ''<nowiki>}</nowiki>'' is ASCII 125, and the [[metacharacter]] ''carriage return'' is ASCII 13. Systems based on ASCII use seven bits to represent these values digitally. In contrast, most computers store data in memory organized in eight-bit [[byte]]s. Files that contain machine-executable code and non-textual data typically contain all 256 possible eight-bit byte values. Many computer programs came to rely on this distinction between seven-bit ''text'' and eight-bit ''binary'' data, and would not function properly if non-ASCII characters appeared in data that was expected to include only ASCII text. For example, if the value of the eighth bit is not preserved, the program might interpret a byte value above 127 as a flag telling it to perform some function. It is often desirable, however, to be able to send non-textual data through text-based systems, such as when one might attach an image file to an e-mail message. To accomplish this, the data is encoded in some way, such that eight-bit data is encoded into seven-bit ASCII characters (generally using only alphanumeric and punctuation characters—the [[ASCII#ASCII printable characters|ASCII printable characters]]). Upon safe arrival at its destination, it is then decoded back to its eight-bit form. This process is referred to as binary to text encoding. Many programs perform this conversion to allow for data-transport, such as [[Pretty Good Privacy|PGP]] and [[GNU Privacy Guard]] (GPG). ==Encoding plain text== Binary-to-text encoding methods are also used as a mechanism for encoding [[plain text]]. For example: * Some systems have a more limited character set they can handle; not only are they not [[8-bit clean]], some cannot even handle every printable ASCII character. * Other systems have limits on the number of characters that may appear between [[line break (computing)|line break]]s, such as the "1000 characters per line" limit of some [[SMTP]] software, as allowed by {{IETF RFC|2821}}. * Still others add [[header (computing)|header]]s or [[trailer (information technology)|trailer]]s to the text. * A few poorly-regarded but still-used protocols use [[in-band signaling]], causing confusion if specific patterns appear in the message. The best-known is the string "From&nbsp;" (including trailing space) at the beginning of a line used to separate mail messages in the [[mbox]] file format. By using a binary-to-text encoding on messages that are already plain text, then decoding on the other end, one can make such systems appear to be completely [[Transparency (telecommunication)|transparent]]. This is sometimes referred to as 'ASCII armoring'. For example, the ViewState component of [[ASP.NET]] uses [[base64]] encoding to safely transmit text via HTTP POST, in order to avoid [[delimiter collision]]. {{See also|Delimiter#ASCII armor|Return-to-libc attack#Protection from return-to-libc attacks}} == Encoding standards == The table below compares the most used forms of binary-to-text encodings. The efficiency listed is the ratio between number of bits in the input and the number of bits in the encoded output. {| class="wikitable sortable" |- ! Encoding !! Data type !! Efficiency !! Programming language implementations !! Comments |- | [[Ascii85]] || Arbitrary || 80% || [http://sites.google.com/site/dannychouinard/Home/unix-linux-trinkets/little-utilities/base64-and-base85-encoding-awk-scripts awk], [http://www.ibiblio.org/pub/packages/ccic/software/unix/utils/btoa.c C], [https://github.com/woolstar/test/blob/master/encode/asc85.c C (2)], [http://www.codinghorror.com/blog/2005/10/c-implementation-of-ascii85.html C#], [http://blog.wezeku.com/2010/07/01/f-ascii85-module/ F#], [http://golang.org/pkg/encoding/ascii85/ Go], [https://web.archive.org/web/20160304035222/http://java.freehep.org/freehep-io/apidocs/org/freehep/util/io/ASCII85.html Java] [https://metacpan.org/pod/Convert::Ascii85 Perl], [https://docs.python.org/dev/library/base64.html#base64.a85encode Python], [https://code.google.com/p/python-mom/source/browse/mom/codec/base85.py Python (2)] || There exist several variants of this encoding, [[Base85]], [[btoa]], et cetera. |- | [[Base32]] || Arbitrary || 62.5% || [http://sourceforge.net/projects/cyoencode/ ANSI C], [http://commons.apache.org/codec/ Java], [https://docs.python.org/dev/library/base64.html#base64.b32encode Python] || {{space}} |- | [[Base36]] || Integer || data-sort-value="64%"|~64% || [[Base36#bash implementation|bash]], [[Base36#C implementation|C]], [[Base36#C.2B.2B implementation|C++]], [[Base36#C.23 implementation|C#]], [[Base36#Java implementation|Java]], [[Base36#Perl implementation|Perl]], [[Base36#PHP implementation|PHP]], [[Base36#Python implementation|Python]], [[Base36#Visual Basic implementation|Visual Basic]], [[Base36#Swift implementation|Swift]], many others |Uses the [[Arabic numerals]] 0–9 and the [[Latin alphabet|Latin letters]] A–Z (the [[ISO basic Latin alphabet]]). Commonly used by [[URL redirection]] systems like [[TinyURL]] or SnipURL/Snipr as compact alphanumeric identifiers. |- | [[Base58]] || Integer || data-sort-value="73%"|~73% || [https://github.com/bitcoin/bitcoin/blob/master/src/base58.h C++], [https://pypi.python.org/pypi/base58 Python] || Similar to Base64, but modified to avoid both non-alphanumeric characters and letters which might look ambiguous when printed. |- | [[Base64]] || Arbitrary || 75% || [http://sites.google.com/site/dannychouinard/Home/unix-linux-trinkets/little-utilities/base64-and-base85-encoding-awk-scripts awk], [http://base64.sourceforge.net/ C], [http://www.fpx.de/fp/Software/UUDeview/ C (2)], [https://docs.python.org/dev/library/base64.html#base64.b64encode Python], many others || {{space}} |- | [[Base85]] ({{IETF RFC|1924}}) || Arbitrary || 80% || [https://github.com/woolstar/test/blob/master/encode/base85.c C], [https://docs.python.org/dev/library/base64.html#base64.b85encode Python] [https://code.google.com/p/python-mom/source/browse/mom/codec/base85.py Python (2)] || Revised version of [[Ascii85]]. |- | [[BinHex]] || Arbitrary || 75%|| [http://metacpan.org/module/Convert::BinHex Perl], [http://www.fpx.de/fp/Software/UUDeview/ C], [http://ibiblio.org/pub/linux/utils/compress/macutils.tar.gz C (2)] || MacOS Classic |- | [[Decimal#Decimal computation|Decimal]] || Integer || data-sort-value="42%"|~42% || Most languages || Usually the default representation for input/output from/to humans. |- | [[Hexadecimal#Transfer encoding|Hexadecimal]] (Base16) || Arbitrary || 50% || Most languages || Exists in [[uppercase]] and [[Letter_case#All_lowercase|lowercase]] variants |- | [[Intel HEX]] || Arbitrary || data-sort-value="50%"|~&lt;50% || [https://github.com/vsergeev/libGIS C library], [http://srecord.sourceforge.net/ C++] || Typically used to program [[EPROM]], [[Flash memory|NOR-Flash]] memory chips |- | [[MIME]] || Arbitrary || See [[Quoted-printable]] and [[Base64]] || See [[Quoted-printable]] and [[Base64]] || Encoding container for e-mail-like formatting |- | [[MOS Technology file format]] || Arbitrary || || || Typically used to program [[EPROM]], [[Flash memory|NOR-Flash]] memory chips. |- | [[Percent encoding]] || Text ([[URI]]s), Arbitrary ([https://tools.ietf.org/html/rfc1738 RFC1738]) || data-sort-value="40%"|~40%{{efn|For arbitrary data; encoding all 189 non-unreserved characters with three bytes, and the remaining 66 characters with one.}} (33–70%{{efn|For text; only encoding each of the 18 reserved characters.}}) || [http://www.geekhideout.com/urlcode.shtml C], [https://docs.python.org/3/library/urllib.parse.html#module-urllib.parse Python], probably many others || {{space}} |- | [[Quoted-printable]] || Text || data-sort-value="33%"|~33–100%{{efn|1= One byte stored as =XX. Encoding all but the 94 characters which don't need it (incl. space and tab).}} || Probably many || Preserves line breaks; cuts lines at 76 characters |- | [[S-record]] (Motorola hex) || Arbitrary || 49.6% || [https://github.com/vsergeev/libGIS C library], [http://srecord.sourceforge.net/ C++] || Typically used to program [[EPROM]], [[Flash memory|NOR-Flash]] memory chips. 49.6% assumes 255 binary bytes per record. |- | [[Tektronix hex]] || Arbitrary || || || Typically used to program [[EPROM]], [[Flash memory|NOR-Flash]] memory chips. |- | [[Uuencoding]] || Arbitrary || data-sort-value="60%"|~60% ([[Uuencoding#Disadvantages|up to 70%]]) || [[Uuencoding#Support in Perl|Perl]], [http://www.fpx.de/fp/Software/UUDeview/ C], [https://github.com/frohoff/jdk8u-dev-jdk/blob/master/src/share/classes/sun/misc/UUEncoder.java Java], probably many others || Largely replaced by MIME and yEnc |- | [[Xxencoding]] || Arbitrary || data-sort-value="75%"|~75% (similar to Uuencoding) || [http://www.fpx.de/fp/Software/UUDeview/ C] || Proposed (and occasionally used) as replacement for Uuencoding to avoid character set translation problems between ASCII and the EBCDIC systems that could corrupt Uuencoded data |- | [[yEnc]] || Arbitrary, mostly non-text || data-sort-value="98%"|~98% || [http://www.fpx.de/fp/Software/UUDeview/ C] || Includes a CRC checksum |- |- | {{IETF RFC|1751}} ([[S/KEY]]) || Arbitrary || 33% || C,<ref name="RFC1760" /> [https://www.dlitz.net/software/pycrypto/doc/#crypto-util-rfc1751 Python], ... | "A Convention for [[Human-readable]] 128-bit Keys". A series of small English words is easier for humans to read, remember, and type in than decimal or other binary-to-text encoding systems.<ref> {{IETF RFC|1751}} "A Convention for Human-Readable 128-bit Keys" </ref> Each 64-bit number is mapped to six short words, of one to four characters each, from a public 2048-word dictionary.<ref name="RFC1760" > {{IETF RFC|1760}} "The S/KEY One-Time Password System". </ref> |- |} The 95 [[isprint]] codes 32 to 126 are known as the [[ASCII printable characters]]. Some older and today uncommon formats include BOO, [[BTOA]], and USR encoding. Most of these encodings generate text containing only a subset of all [[ASCII]] printable characters: for example, the [[base64]] encoding generates text that only contains upper case and lower case letters, (A–Z, a–z), numerals (0–9), and the "+", "/", and "=" symbols. Some of these encoding (quoted-printable and percent encoding) are based on a set of allowed characters and a single [[escape character]]. The allowed characters are left unchanged, while all other characters are converted into a string starting with the escape character. This kind of conversion allows the resulting text to be almost readable, in that letters and digits are part of the allowed characters, and are therefore left as they are in the encoded text. These encodings produce the shortest plain ASCII output for input that is mostly printable ASCII. Some other encodings ([[base64]], [[uuencoding]]) are based on mapping all possible sequences of six [[bit]]s into different printable characters. Since there are more than 2<sup>6</sup>&nbsp;=&nbsp;64 printable characters, this is possible. A given sequence of bytes is translated by viewing it as stream of bits, breaking this stream in chunks of six bits and generating the sequence of corresponding characters. The different encodings differ in the mapping between sequences of bits and characters and in how the resulting text is formatted. Some encodings (the original version of BinHex and the recommended encoding for [[CipherSaber]]) use four'
Unified diff of changes made by edit (edit_diff)
'@@ -93,16 +93,3 @@ Some other encodings ([[base64]], [[uuencoding]]) are based on mapping all possible sequences of six [[bit]]s into different printable characters. Since there are more than 2<sup>6</sup>&nbsp;=&nbsp;64 printable characters, this is possible. A given sequence of bytes is translated by viewing it as stream of bits, breaking this stream in chunks of six bits and generating the sequence of corresponding characters. The different encodings differ in the mapping between sequences of bits and characters and in how the resulting text is formatted. -Some encodings (the original version of BinHex and the recommended encoding for [[CipherSaber]]) use four bits instead of six, mapping all possible sequences of 4 bits onto the 16 standard [[hexadecimal]] digits. -Using 4 bits per encoded character leads to a 50% longer output than base64, but simplifies encoding and decoding—expanding each byte in the source independently to two encoded bytes is simpler than base64's expanding 3 source bytes to 4 encoded bytes. - -Out of [[PETSCII]]'s first 192 codes, 164 have visible representations when quoted: 5 (white), 17–20 and 28–31 (colors and cursor controls), 32–90 (ascii equivalent), 91–127 (graphics), 129 (orange), 133–140 (function keys), 144–159 (colors and cursor controls), and 160–192 (graphics).<ref>http://sta.c64.org/cbm64pet.html et al</ref> This theoretically permits encodings, such as base128, between PETSCII-speaking machines. - -== Notes == -{{Notelist}} - -== References == -{{Reflist}} - -[[Category:Binary-to-text encoding formats| ]] -[[Category:Computer file formats]] -[[Category:Character encoding]] +Some encodings (the original version of BinHex and the recommended encoding for [[CipherSaber]]) use four '
New page size (new_size)
12505
Old page size (old_size)
13479
Size change in edit (edit_delta)
-974
Lines added in edit (added_lines)
[ 0 => 'Some encodings (the original version of BinHex and the recommended encoding for [[CipherSaber]]) use four' ]
Lines removed in edit (removed_lines)
[ 0 => 'Some encodings (the original version of BinHex and the recommended encoding for [[CipherSaber]]) use four bits instead of six, mapping all possible sequences of 4 bits onto the 16 standard [[hexadecimal]] digits.', 1 => 'Using 4 bits per encoded character leads to a 50% longer output than base64, but simplifies encoding and decoding—expanding each byte in the source independently to two encoded bytes is simpler than base64's expanding 3 source bytes to 4 encoded bytes.', 2 => '', 3 => 'Out of [[PETSCII]]'s first 192 codes, 164 have visible representations when quoted: 5 (white), 17–20 and 28–31 (colors and cursor controls), 32–90 (ascii equivalent), 91–127 (graphics), 129 (orange), 133–140 (function keys), 144–159 (colors and cursor controls), and 160–192 (graphics).<ref>http://sta.c64.org/cbm64pet.html et al</ref> This theoretically permits encodings, such as base128, between PETSCII-speaking machines.', 4 => '', 5 => '== Notes ==', 6 => '{{Notelist}}', 7 => '', 8 => '== References ==', 9 => '{{Reflist}}', 10 => '', 11 => '[[Category:Binary-to-text encoding formats| ]]', 12 => '[[Category:Computer file formats]]', 13 => '[[Category:Character encoding]]' ]
Whether or not the change was made through a Tor exit node (tor_exit_node)
false
Unix timestamp of change (timestamp)
1597471704