Bei dem Zeichensatz "UTF-7" handelt es sich nicht um einen Zeichensatz, wie z.B. "Windows Codepage 1252", sondern vielmehr um eine Codierung von Unicode-Zeichen.
Der von KEYTAB implementierte Algorithmus zur Umwandlung von Unicode in UTF-7 lautet im C-Source:
if( lunicode == atariPlusUnicode ) { string[0] = '+'; string[1] = '-'; used = 2; } else if( lunicode < 0x80 ) { string[0] = (char)(lunicode & 0xFF); used = 1; } else if( lunicode < 0x10000l ) { string[0] = '+'; string[1] = base64[(lunicode >> 10) & 0x3F]; string[2] = base64[(lunicode >> 4) & 0x3F]; string[3] = base64[(lunicode << 2) & 0x3F]; string[4] = '-'; used = 5; } else if( lunicode < 0x110000l ) { long c = uniMakeSurrogate(lunicode); string[0] = '+'; string[1] = base64[(c >> 26) & 0x3F]; string[2] = base64[(c >> 20) & 0x3F]; string[3] = base64[(c >> 14) & 0x3F]; string[4] = base64[(c >> 8) & 0x3F]; string[5] = base64[(c >> 2) & 0x3F]; string[6] = base64[(c << 4) & 0x3F]; string[7] = '-'; used = 8; }