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

如何解决SSMS无法识别Excel导出的未知编码匈牙利语数据问题?

解决匈牙利姓名编码乱码问题

一、先明确编码类型

你遇到的乱码是典型的**UTF-8编码被错误解析为Latin-1(ISO-8859-1)**导致的:

  • 正确字符á的UTF-8二进制是0xC3 0xA1,如果用Latin-1解码,就会被拆成Ă(0xC3)和ˇ(0xA1),和你碰到的Oláh对应Oláh完全匹配。

二、修复已有的乱码数据

1. 在SSMS中批量修正

如果数据已经导入SSMS,可执行以下SQL语句批量修复:

UPDATE 你的表名
SET 姓名列 = CAST(CAST(姓名列 AS VARCHAR(MAX)) AS VARBINARY(MAX)) COLLATE Latin1_General_100_CI_AS

原理:把按Latin-1解析的乱码字符转成二进制字节流,再用UTF-8对应的排序规则重新解析,还原正确字符。

2. Excel预处理后重新导入

  • 打开乱码的xlsx文件,选中姓名列复制到记事本(记事本默认以UTF-8读取字节),此时乱码会自动恢复为正确字符;
  • 将记事本内容复制回Excel,保存后再导入SSMS即可。

三、避免后续导入出现乱码

1. SSMS导入时指定编码

使用SSMS「导入数据」向导时:

  • 选择Excel数据源后,进入「数据转换」步骤,找到姓名列,将数据类型设为nvarchar,编码选择UTF-8;
  • 或在「高级」选项中,强制设置列的代码页为65001(UTF-8的官方代码页编号)。

2. 导出Excel时强制UTF-8编码

如果是从其他工具导出到Excel:

  • 优先选择导出为CSV格式,导出时明确指定编码为「UTF-8(带BOM)」,再用Excel打开该CSV文件,特殊字符会正常显示;
  • 若必须导出为xlsx,确认导出工具的编码设置为UTF-8,避免默认使用系统编码(如Windows-1252)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 15:42:46