Sample code for 30+ languages & platforms
PureBasic

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 PureBasic Downloads

PureBasic
IncludeFile "CkMime.pb"

Procedure ChilkatExample()

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

    mime.i = CkMime::ckCreate()
    If mime.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    ; Set the MIME body using some 8bit non-us-ascii characters:
    CkMime::ckSetBody(mime,"á, é, í, ó, ú")

    ; Set the Content-Type
    CkMime::setCkContentType(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::setCkEncoding(mime, "quoted-printable")

    ; Set the Charset to utf-8
    CkMime::setCkCharset(mime, "utf-8")

    ; Examine the MIME:
    Debug CkMime::ckGetMime(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::setCkCharset(mime, "iso-8859-1")

    ; Get the MIME again...
    Debug CkMime::ckGetMime(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


    CkMime::ckDispose(mime)


    ProcedureReturn
EndProcedure