Специальные символы, отображаемые неправильно после BULK INSERT
Я использую BULK INSERT
для импорта CSV файла. Один из столбцов в файле CSV содержит некоторые значения, содержащие фракции (например, 1m½f
).
Мне не нужно выполнять какие-либо математические операции над фракциями, так как значения будут использоваться только для целей отображения, поэтому я установил столбец как nvarchar
. BULK INSERT
работает, но когда я просматриваю записи в SQL, фракция была заменена символом cent (¢
), поэтому отображаемый текст 1m¢f
.
Мне интересно понять, почему это происходит, и какие-либо мысли о том, как решить проблему. Команда BULK INSERT
:
BULK INSERT dbo.temp FROM 'C:\Temp\file.csv'
WITH (FIELDTERMINATOR = ',', ROWTERMINATOR = '\n' );
Ответы
Ответ 1
Вам нужно BULK INSERT
использовать CODEPAGE = 'ACP'
, который преобразует строковые данные из кодовой страницы Windows в кодовую страницу SQL Server.
BULK INSERT dbo.temp FROM 'C:\Temp\file.csv'
WITH (FIELDTERMINATOR = ',', ROWTERMINATOR = '\n', CODEPAGE = 'ACP');