Sample code for 30+ languages & platforms
Tcl

Setting the MIME Text Charset (such as utf-8, iso-8859-1, etc.)

See more MIME Examples

Demonstrates how setting the Charset property controls the character encoding used for the text body in a MIME message.

Chilkat Tcl Downloads

Tcl

load ./chilkat.dll

# This example assumes the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.

set mime [new_CkMime]

# Set the MIME body using some 8bit non-us-ascii characters:
CkMime_SetBody $mime "á, é, í, ó, ú"

# Set the Content-Type
CkMime_put_ContentType $mime "text/plain"

# Set the Content-Transfer-Encoding to "quoted-printable"
# so it's easy to see the bytes used to encode each character
# (i.e. it will be easy to see that utf-8 uses 2-bytes for 
# non-us-ascii characters such as "á", whereas a character
# encoding such as iso-8859-1 will use one byte per character.
CkMime_put_Encoding $mime "quoted-printable"

# Set the Charset to utf-8
CkMime_put_Charset $mime "utf-8"

# Examine the MIME:
puts [CkMime_getMime $mime]

# The MIME should look like this:

# Content-Transfer-Encoding: quoted-printable
# Content-Type: text/plain; charset="utf-8"
# 
# =C3=A1, =C3=A9, =C3=AD, =C3=B3, =C3=BA

# Now change the Charset to "iso-8859-1"
CkMime_put_Charset $mime "iso-8859-1"

# Get the MIME again...
puts [CkMime_getMime $mime]

# Now the MIME should look like this:

# Content-Transfer-Encoding: quoted-printable
# Content-Type: text/plain; charset="iso-8859-1"
# 
# =E1, =E9, =ED, =F3, =FA

delete_CkMime $mime