You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将带重音字符的CSV文件导入SQL Server时如何保留重音?

解决SQL Server导入带重音字符CSV的乱码问题
  • 先确认CSV文件的实际编码
    用记事本打开CSV,点击「文件」→「另存为」,在编码下拉框里查看当前文件的编码(比如UTF-8、UTF-16、ANSI),这是解决问题的核心前提。

  • 针对不同编码的解决方案

    1. UTF-8编码(含BOM或无BOM)
      用CODEPAGE = '65001'指定UTF-8编码,配合DATAFILETYPE = 'char',同时确保行终止符匹配文件实际使用的(Windows生成的CSV一般是\r\n):

      IF OBJECT_ID('dbo.example', 'U') IS NOT NULL
          DROP TABLE dbo.example;
      
      CREATE TABLE example (
          transaction_id INT,
          country NVARCHAR(255), -- 无需指定单字节排序规则,用数据库默认Unicode排序规则即可
          state NVARCHAR(255),
          city NVARCHAR(255)
      );
      
      BULK INSERT example
      FROM 'C:\your_file.csv'
      WITH (
          FIELDTERMINATOR = ',',
          ROWTERMINATOR = '\r\n',
          FIRSTROW = 2,
          FORMAT = 'CSV',
          CODEPAGE = '65001',
          DATAFILETYPE = 'char'
      );
      
    2. UTF-16(Unicode)编码
      直接用DATAFILETYPE = 'widechar',因为UTF-16是双字节编码,和nvarchar的存储格式匹配:

      BULK INSERT example
      FROM 'C:\your_file.csv'
      WITH (
          FIELDTERMINATOR = ',',
          ROWTERMINATOR = '\n', -- 根据文件实际行终止符调整,可能是\r\n
          FIRSTROW = 2,
          FORMAT = 'CSV',
          DATAFILETYPE = 'widechar'
      );
      
    3. ANSI/Latin-1编码(Excel默认保存的CSV)
      用CODEPAGE = '1252'对应Windows的ANSI编码:

      BULK INSERT example
      FROM 'C:\your_file.csv'
      WITH (
          FIELDTERMINATOR = ',',
          ROWTERMINATOR = '\r\n',
          FIRSTROW = 2,
          FORMAT = 'CSV',
          CODEPAGE = '1252',
          DATAFILETYPE = 'char'
      );
      
  • 额外注意事项

    • 不要给nvarchar列指定单字节排序规则(比如SQL_Latin1_General_CP1_CI_AS),这类排序规则为varchar设计,虽不影响nvarchar存储,但可能导致显示或排序异常,建议用数据库默认的Unicode排序规则(比如Latin1_General_100_CI_AS_SC)。
    • 如果用Excel生成CSV,要保存为「CSV UTF-8(逗号分隔)」格式,避免ANSI编码导致的字符丢失。
    • 测试时可以先导入单行数据(比如只包含Seúl和Japón的行),排查是否是行终止符不匹配导致的乱码扩散。

内容的提问来源于stack exchange,提问作者OranC

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 02:45:14