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

Azure Fabric湖仓SQL端点读取非UTF编码CSV报错问题咨询

非UTF-8编码CSV在Fabric OPENROWSET中的问题与解决方法

问题背景

尝试使用OPENROWSET读取Windows-1252编码的CSV文件,文件包含特殊字符(如Å、Ø):

col1;col2;col3
FRANK;998533805;20.06
FINSÅS KARL;999999;10.05
RØNNING FRANK KARL;999999;7.05
  • 不指定编码参数时可读取,但特殊字符显示乱码;
  • 添加PARSER_VERSION = '1.0'和CODEPAGE = '1252'后,执行超时并报错:

...file is incomplete or could not be read. Operating system error code 13(The data is invalid.

UTF-8编码的CSV文件无此问题,疑问Fabric对非UTF编码CSV是否存在已知问题。

问题分析

Fabric中OPENROWSET的旧版解析器(PARSER_VERSION='1.0')对非UTF-8编码的CODEPAGE参数支持存在兼容性问题,解析逻辑冲突会触发错误码13的异常,这是已被反馈的常见场景。

解决方法

1. 切换至新版解析器

使用PARSER_VERSION='2.0',该版本对非UTF编码的处理更稳定,可配合CODEPAGE参数正常读取:

SELECT
*
FROM OPENROWSET (
    BULK 'Files/myfolder/file.csv',
    FORMAT = 'CSV',
    FIRSTROW = 2,
    FIELDTERMINATOR =';',
    PARSER_VERSION = '2.0',
    CODEPAGE = '1252'
)
WITH (
    col1      varchar(100),
    col2      varchar(100),
    col3      varchar(100)    
) fct

2. 转码为UTF-8后读取

将Windows-1252编码的CSV转码为UTF-8(可通过Notepad++、Power Query等工具完成),再用原无编码参数的逻辑读取,避免编码适配问题。

3. 替换为COPY INTO语句

Fabric的COPY INTO对非UTF编码的支持更可靠,适合批量导入场景:

COPY INTO YourTargetTable (col1, col2, col3)
FROM 'Files/myfolder/file.csv'
WITH (
    FORMAT = 'CSV',
    FIRSTROW = 2,
    FIELDTERMINATOR = ';',
    CODEPAGE = '1252'
)

额外提示

  • 确保Fabric Workspace对目标文件有读取权限;
  • 含特殊字符的列建议使用nvarchar类型,避免字符丢失;
  • 若文件带BOM标记,需调整FIELDQUOTE等参数适配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.02 00:23:10