Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

character encoding issue with the BCP and ó

I have a file that needs to go to Poland. In my data I have an ó. When I output the data to a table the ó is still there as the field is NVARCHAR. When I cut and paste from the table into Excel or Notepad++ the ó stays

When I use the BCP utility to export the data, the ó is changed to a ¢ if I open the resulting text file in Excel or Notepad++. If I change the encoding sometimes the character becomes a ˘.

I have tried the following command line switches, one at a time. -n -N -w

like image 752
Mike Avatar asked May 06 '15 16:05

Mike


1 Answers

Have you looked into -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. 

Given your table's data type is Unicode (NVARCHAR), you also have to use -c (which may lose some Unicode characters)

-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

-w without -c and -C ACP should also work as long as Notepad++ can detect the encoding (UCS-2 Little Endian). I had no problem with my simple example using Notepad++ 6.7.7.

Notepad++

Source: https://msdn.microsoft.com/en-us/library/ms162802.aspx

like image 189
Mark Chesney Avatar answered Nov 15 '22 06:11

Mark Chesney