Instruction Code. IBM
's (suite of) character encoding(s). If you're not dealing with IBM
systems or legacy data, it is almost certainly better to use one of the encodings that have evolved from ASCII
Interestingly enough, EBCDIC was developed after ASCII
; while IBM
participated in the standardization of ASCII
, it never implemented the code widely. A large part of the motivation was that EBCDIC was designed for easy encoding on Hollerith cards; using ASCII required either a non-standard card code (shown in http://www.cwi.nl/~dik/english/codes/80col.html#decascii
) or else a fair amount of hardware (a large hand-soldered diode matrix) to do code conversion.
The fact that the alphabet is disconnected in EBCDIC comes from the fact that it's tied to card code. The most significant nybble of an EBCDIC character represents the zone punches (12, 11, 0) and the least significant one represents the numeric punches (1-9). There's a weird special case surrounding zero, blank, and null, and several other curious cases having to do with vagaries of the 029 key punch. http://www.cwi.nl/~dik/english/codes/stand.html#ebcdic
: Here is a list from Oracle's SQL Language Reference Manual:
Decimal Symbol Decimal Symbol
64 blank 108 %
74 cent sign* 109 _
75 . 110 >
76 < 111 ?
77 ( 122 :
78 + 123 #
79 | 124 @
80 & 125 '
90 ! 126 =
91 $ 127 "
92 * 129..137 a - i
93 ) 145..153 j - r
94 ; 162..169 s - z
95 NOT sign* 193..201 A - I
96 - 209..217 J - R
97 / 226..233 S - Z
107 , 240..249 0 - 9
*: characters not in ASCII. NOT sign is a dash with short hook down.
Does anyone know of Tcl code that converts text strings between ASCII
and EBCDIC? RS
: sure, encoding
% encoding convertto ebcdic EXAMPLE
What about the opposite? I tried:
set ebcdic [encoding convertto ebcdic "This is a test"]
set as [encoding convertto ascii $ebcdic]
doesn't end up with the original text.RS
: Pilot error - the standard encoding is always utf-8; in conversions you have to specify the non-utf-8 part. This works:
% encoding convertfrom ebcdic [encoding convertto ebcdic ASCII]
Ah - that explains it. Thanks!