Sample code for 30+ languages & platforms
SQL Server

Q-Encode a String for MIME Headers

See more Email Object Examples

Demonstrates the Chilkat Email.QEncodeString method, which converts the Unicode string in the first argument to the charset named in the second argument, Q-encodes the resulting multibyte data, and returns the encoded string. This is one of the representations used for non-ASCII text in MIME header fields.

Background: RFC 2047 defines two "encoded-word" schemes for putting non-ASCII text in headers: B (Base64) and Q (quoted-printable-style). Q-encoding leaves plain ASCII mostly readable and escapes only the special bytes, producing output like =?utf-8?Q?Caf=C3=A9?=. It is the better choice when text is mostly ASCII with a few accented characters, whereas B-encoding (BEncodeString) is more compact when most characters are non-ASCII.

Chilkat SQL Server Downloads

SQL Server
-- Important: See this note about string length limitations for strings returned by sp_OAMethod calls.
--
CREATE PROCEDURE ChilkatSample
AS
BEGIN
    DECLARE @hr int
    --  Demonstrates the QEncodeString method, which converts a Unicode string to a specified
    --  charset, Q-encodes (RFC 2047) the resulting bytes, and returns the encoded string.
    --  This is one of the forms used for non-ASCII text in MIME header fields.

    DECLARE @email int
    EXEC @hr = sp_OACreate 'Chilkat.Email', @email OUT
    IF @hr <> 0
    BEGIN
        PRINT 'Failed to create ActiveX component'
        RETURN
    END

    --  Q-encode a Unicode string using the utf-8 charset.
    DECLARE @encoded nvarchar(4000)
    EXEC sp_OAMethod @email, 'QEncodeString', @encoded OUT, 'Cafe Meeting Notes', 'utf-8'


    PRINT 'Q-encoded: ' + @encoded

    EXEC @hr = sp_OADestroy @email


END
GO