我有一个需要去波兰的文件。在我的数据中,我有一个ó
。当我将数据输出到表格时,ó
仍然存在,因为字段为NVARCHAR
。当我从表中剪切并粘贴到Excel或Notepad ++时,ó
保持
当我使用BCP实用程序导出数据时,如果我在Excel或Notepad ++中打开生成的文本文件,ó
将更改为¢
。如果我更改编码,有时字符变为˘
。
我尝试过以下命令行开关,一次一个。
-n
-N
-w
答案 0 :(得分:6)
你有没有看过-C
?
-C { ACP | OEM | RAW | code_page }
Specifies the code page of the data in the data file. code_page is
relevant only if the data contains char, varchar, or text columns
with character values greater than 127 or less than 32.
鉴于您的表的数据类型是Unicode(NVARCHAR),您还必须使用-c
(可能会丢失一些Unicode字符)
-c
Performs the operation using a character data type. This option
does not prompt for each field; it uses char as the storage type,
without prefixes and with \t (tab character) as the field
separator and \r\n (newline character) as the row terminator. -c
is not compatible with -w.
For more information, see [Use Character Format to Import or
Export Data (SQL Server)].
CREATE TABLE [dbo].[Test] (
[test] [nvarchar](100) NOT NULL
);
INSERT [dbo].[Test] ([test]) VALUES (N'helló wórld');
bcp dbo.Test out dbo.Test.dat -c -T -C ACP
只要Notepad ++可以检测到编码(UCS-2 Little Endian),没有-w
和-c
的 -C ACP
也应该有效。使用Notepad ++ 6.7.7我的简单示例没问题。