欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

[转]sp_OACreate WriteLine Writing nvarchar 中文汉字 非乱码to a text file

程序员文章站 2022-06-24 15:17:13
本文转自:https://*.com/questions/48135889/writing-nvarchar-to-a-text-file According to the Scripting.FileSystemObject documentation, the Creat ......

本文转自:https://*.com/questions/48135889/writing-nvarchar-to-a-text-file

According to the Scripting.FileSystemObject documentation, the CreateTextFile method takes a Boolean value to create a Unicode file. You could change the T-SQL code to use that method instead of OpenTextFile.

EDIT:

Below is an example using OpenTextFile per Tom's comment. I change the iomode value in your original code from 1 to 8 to match the documentation and added the close and destroy in case your full code is missing those important tasks.

DECLARE @OLE INT;
DECLARE @FileId INT;
DECLARE @File VARCHAR(max) = 'c:\test.txt';
DECLARE @Text NVARCHAR(max) = N'من نمایش داده نمیشم';

EXECUTE sp_OACreate 'Scripting.FileSystemObject',@OLE OUT;
EXECUTE sp_OAMethod @OLE, 'OpenTextFile', @FileId OUT, @File,8,1,-1;
EXECUTE sp_OAMethod @FileId, 'WriteLine', Null, @Text;
EXECUTE sp_OAMethod @FileId, 'Close';
EXECUTE sp_OADestroy @FileId OUT;
EXECUTE sp_OADestroy @OLE OUT;