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

使用Azure Data Studio向SQL Server导入£符号的问题

解决Azure Data Studio导入时£符号变为?的问题

一、确认目标字段类型

必须使用Nvarchar(n) 或 Ntext(Ntext已过时,优先选择Nvarchar),这两类是SQL Server的Unicode存储类型,能够完整保存£这类特殊字符。Varchar/Text属于单字节编码类型,只有当数据库默认排序规则的代码页包含£字符时才能正常存储,否则会被替换为?,因此不建议使用。

二、调整导入向导的编码设置

Azure Data Studio导入向导读取源文件(如CSV、Excel)时,编码不匹配是导致乱码的核心原因,需手动指定正确编码:

  • 若源文件是CSV:在导入流程的「预览数据」步骤前,找到编码选项,选择UTF-8或Windows-1252(Windows默认西欧编码,原生支持£),不要使用默认的ASCII编码。
  • 若源文件是Excel:先确认文件本身编码正常,若导入仍有问题,可先将Excel另存为UTF-8编码的CSV文件,再重新导入。

三、备选导入方法

如果导入向导仍无法解决问题,可尝试以下方式:

1. 使用BULK INSERT命令

直接编写T-SQL脚本导入,明确指定编码参数:

BULK INSERT YourTargetTable
FROM 'C:\YourSourceFile.csv'
WITH (
    FIELDTERMINATOR = ',',
    ROWTERMINATOR = '\n',
    CODEPAGE = '1252', -- 对应Windows-1252编码,支持£字符
    DATAFILETYPE = 'char',
    KEEPIDENTITY
);

如果源文件是UTF-8编码,将CODEPAGE参数改为'65001'即可。

2. 借助SQL Server Integration Services (SSIS)

创建SSIS包,在数据转换组件中明确设置源和目标的字符编码为Unicode,SSIS对字符编码的控制更精细,能有效避免乱码问题。

3. 预处理源文件

用Notepad++等文本编辑器打开CSV源文件,确认其编码为UTF-8或Windows-1252,重新保存后再通过导入向导导入。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 07:18:19