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

Azure Synapse Serverless命令显示特殊字符而非中文的问题求助

Azure Synapse Serverless 查询中文显示问号的解决方法

核心解决步骤

  • 确认数据写入编码:Delta/Parquet默认存储UTF-8字符串,若写入环节(如Spark作业)使用了GBK/GB2312等非UTF-8编码,会导致读取乱码。需确保写入时指定UTF-8编码,比如Spark写Delta时添加配置option("encoding", "UTF-8")。
  • 强制指定Unicode列类型:OPENROWSET默认可能将字符串解析为非Unicode的VARCHAR类型,需手动通过WITH子句定义列类型为NVARCHAR,避免后续转换失效:
SELECT 
    PurchaseOrderLineDescription,
    PurchaseOrderLineDescription COLLATE Chinese_PRC_CI_AI AS PurchaseOrderLineDescription1
FROM  
    OPENROWSET(
        BULK 'https://dbstorageda0s.dfs.core.windows.net/BC2.0-IP/TransformLayer/Facts/Views/CoupaPurchaseOrder/',
        FORMAT = 'DELTA'
    ) WITH (
        PurchaseOrderNumber VARCHAR(50),
        PurchaseOrderLineDescription NVARCHAR(MAX)
    ) AS coupapurchaseorder_ipspend_test 
WHERE 
    PurchaseOrderNumber IN ('4523955603', 'PO15044020', 'PO15164185');
  • 检查终端编码设置:Synapse查询窗口或SSMS连接时,需确保终端编码为UTF-8或GB2312,避免因终端无法解析Unicode字符显示问号。
  • 正确应用排序规则:若原始列是VARCHAR类型,需先转换为NVARCHAR再指定排序规则,示例:
CAST(PurchaseOrderLineDescription AS NVARCHAR(MAX)) COLLATE Chinese_PRC_CI_AI

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 09:52:48