Sample code for 30+ languages & platforms
DataFlex

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

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Handle hoMime
    String sTemp1

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

    Get Create (RefClass(cComChilkatMime)) To hoMime
    If (Not(IsComObjectCreated(hoMime))) Begin
        Send CreateComObject of hoMime
    End

    // Set the MIME body using some 8bit non-us-ascii characters:
    Send ComSetBody To hoMime "á, é, í, ó, ú"

    // Set the Content-Type
    Set ComContentType Of hoMime To "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.
    Set ComEncoding Of hoMime To "quoted-printable"

    // Set the Charset to utf-8
    Set ComCharset Of hoMime To "utf-8"

    // Examine the MIME:
    Get ComGetMime Of hoMime To sTemp1
    Showln sTemp1

    // 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"
    Set ComCharset Of hoMime To "iso-8859-1"

    // Get the MIME again...
    Get ComGetMime Of hoMime To sTemp1
    Showln sTemp1

    // 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


End_Procedure