[转](SQL Server) Convert a File from utf-8 to ANSI (such as Windows-1252)

本文转自:https://example-code.com/sql/charset_convert_file_from_utf8_to_ansi.asp

CREATE PROCEDURE ChilkatSample
AS
BEGIN
    DECLARE @hr int
    DECLARE @sTmp0 nvarchar(4000)
    DECLARE @charset int
    EXEC @hr = sp_OACreate 'Chilkat_9_5_0.Charset', @charset OUT
    IF @hr <> 0
    BEGIN
        PRINT 'Failed to create ActiveX component'
        RETURN
    END

    DECLARE @success int
    EXEC sp_OAMethod @charset, 'UnlockComponent', @success OUT, 'Anything for 30-day trial.'
    IF STR(@success) <> 1
      BEGIN
        EXEC sp_OAGetProperty @charset, 'LastErrorText', @sTmp0 OUT
        PRINT @sTmp0
        EXEC @hr = sp_OADestroy @charset
        RETURN
      END

    EXEC sp_OASetProperty @charset, 'FromCharset', 'utf-8'
    EXEC sp_OASetProperty @charset, 'ToCharset', 'ANSI'

    --  We could alternatively be more specific and say "Windows-1252".
    --  The term "ANSI" means -- whatever character encoding is defined as the ANSI
    --  encoding for the computer.  In Poland, for example, it would be the single-byte-per-char
    --  used to represnt Eastern European language chars, which is Windows-1250.
    EXEC sp_OASetProperty @charset, 'ToCharset', 'Windows-1252'

    EXEC sp_OAMethod @charset, 'ConvertFile', @success OUT, 'qa_data/txt/cafeUtf8.txt', 'qa_output/cafeAnsi.txt'
    IF STR(@success) <> 1
      BEGIN
        EXEC sp_OAGetProperty @charset, 'LastErrorText', @sTmp0 OUT
        PRINT @sTmp0
        EXEC @hr = sp_OADestroy @charset
        RETURN
      END


    PRINT 'Success.'

    EXEC @hr = sp_OADestroy @charset


END
GO
原文地址:https://www.cnblogs.com/freeliver54/p/9172498.html