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

SQL Server修改列支持多语言,解决插入韩文显示问号问题

解决SQL Server中nvarchar列插入非英文字符显示问号的问题

你遇到的问题核心是插入Unicode字符时没加N前缀,导致SQL Server把字符串按默认代码页转码,非ASCII字符变成问号。虽然你已经把列改成了nvarchar(max)(这个类型本身支持Unicode),但插入语句的写法不对,才会出现乱码。

解决步骤如下:

1. 修正插入语句

插入Unicode字符串时,必须在字符串前加N前缀,告诉SQL Server这是Unicode格式的内容,匹配nvarchar列的类型:

insert into landing.lnd_test (party_name)
values (N'성 이름')

2. 修复已插入的错误数据

如果已经有显示为'? ??'的错误数据,用带N前缀的更新语句修正:

update landing.lnd_test
set party_name = N'성 이름'
where party_name = '? ??' -- 可根据其他条件精准定位错误行

3. 检查列的排序规则(可选)

如果后续仍有问题,确认列的排序规则是否支持韩文:

  • 查看当前列的排序规则:
SELECT c.collation_name
FROM sys.columns c
JOIN sys.tables t ON c.object_id = t.object_id
WHERE t.name = 'lnd_test' AND c.name = 'party_name'
  • 如果需要修改为适配韩文的排序规则,执行:
ALTER TABLE landing.lnd_test
ALTER COLUMN party_name NVARCHAR(MAX) COLLATE Korean_Wansung_CI_AS 
-- 末尾加 NOT NULL 或 NULL,根据列原本的空值属性调整

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 01:27:14