我有一个要求,我需要将存储在表中的日语字符串写入文本文件。 我试过下面的查询,它只打印文本文件中的问号。
DECLARE @cmd NVARCHAR(2000), @Msg NVARCHAR(1000);
SELECT @Msg=String FROM JapaneseStringTable;
SET @cmd='echo '+@Msg+'>>'+'C:\Data\Test.txt';
EXEC sys.xp_cmdshell @cmd;
我试图硬编码日文字符串并写入文件,但仍然没有运气
DECLARE @cmd NVARCHAR(2000),
@Msg NVARCHAR(1000)=N'データノード';
SET @cmd='echo '+@Msg+'>>'+'C:\Data\Test.txt';
EXEC sys.xp_cmdshell @cmd;
答案 0 :(得分:0)
这是因为您的操作系统与日语不同code page
。因此,您的问题与传递日语字符串的SQL Server
无关,而与操作此字符串为ASCII的操作系统无关。
要获得正确的结果,您应该更改OS代码页。
您可以直接从cmd:
使用命令向自己证明echo データノード >> C:\Data\Test.txt
这会给你?????
如果您首先在同一个cmd窗口中更改代码页:
chcp 936
然后执行echo データノード >> C:\Data\Test.txt
输出文件将具有正确的ascii代码。
如果仍然无法正确查看它们,请使用Word查看此文件,但至少不会丢失任何字符(?????),ascii代码将是正确的。