[转](SQL Server) Convert a File from utf-8 to ANSI (such as Windows-1252)
时间:2022-03-15 08:49
本文转自:
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