SQL Server
SQL Server
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 SQL Server Downloads
-- Important: See this note about string length limitations for strings returned by sp_OAMethod calls.
--
CREATE PROCEDURE ChilkatSample
AS
BEGIN
DECLARE @hr int
-- Important: Do not use nvarchar(max). See the warning about using nvarchar(max).
DECLARE @sTmp0 nvarchar(4000)
-- This example assumes the Chilkat API to have been previously unlocked.
-- See Global Unlock Sample for sample code.
DECLARE @mime int
EXEC @hr = sp_OACreate 'Chilkat.Mime', @mime OUT
IF @hr <> 0
BEGIN
PRINT 'Failed to create ActiveX component'
RETURN
END
-- Set the MIME body using some 8bit non-us-ascii characters:
EXEC sp_OAMethod @mime, 'SetBody', NULL, 'á, é, í, ó, ú'
-- Set the Content-Type
EXEC sp_OASetProperty @mime, 'ContentType', '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.
EXEC sp_OASetProperty @mime, 'Encoding', 'quoted-printable'
-- Set the Charset to utf-8
EXEC sp_OASetProperty @mime, 'Charset', 'utf-8'
-- Examine the MIME:
EXEC sp_OAMethod @mime, 'GetMime', @sTmp0 OUT
PRINT @sTmp0
-- 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"
EXEC sp_OASetProperty @mime, 'Charset', 'iso-8859-1'
-- Get the MIME again...
EXEC sp_OAMethod @mime, 'GetMime', @sTmp0 OUT
PRINT @sTmp0
-- 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
EXEC @hr = sp_OADestroy @mime
END
GO