Sample code for 30+ languages & platforms
Tcl

MIME Header Q and B Encoding and Decoding

See more Encryption Examples

Demonstrates how to Q and B encode/decode.

Chilkat Tcl Downloads

Tcl

load ./chilkat.dll

set success 0

set sb [new_CkStringBuilder]

CkStringBuilder_Append $sb "This is a test"

puts [CkStringBuilder_getEncoded $sb B utf-8]
# output is:
# =?utf-8?B?VGhpcyBpcyBhIHRlc3Q=?=

puts [CkStringBuilder_getEncoded $sb Q iso-8859-1]
# output is:
# =?utf-8?Q?This_is_a_test?=

set sb2 [new_CkStringBuilder]

CkStringBuilder_Append $sb2 "=?utf-8?B?VGhpcyBpcyBhIHRlc3Q=?="
CkStringBuilder_Decode $sb2 "B" "utf-8"
puts [CkStringBuilder_getAsString $sb2]

# output is:
# This is a test

CkStringBuilder_Clear $sb2
CkStringBuilder_Append $sb2 "=?utf-8?Q?This_is_a_test?="
CkStringBuilder_Decode $sb2 "Q" "utf-8"
puts [CkStringBuilder_getAsString $sb2]

# output is:
# This is a test

# "B" or "Q" will decode both B and Q.
CkStringBuilder_Clear $sb2
CkStringBuilder_Append $sb2 "=?utf-8?Q?This_is_a_test?= 123 =?utf-8?B?VGhpcyBpcyBhIHRlc3Q=?="
CkStringBuilder_Decode $sb2 "Q" "utf-8"
puts [CkStringBuilder_getAsString $sb2]

# output is:
# This is a test 123 This is a test

delete_CkStringBuilder $sb
delete_CkStringBuilder $sb2