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

Oracle 19c中UTF-8配置:解决韩文查询复制后乱码问题

Oracle 19c 韩文查询语句显示问号的解决方法

1. 检查数据库字符集

首先确认数据库本身是否支持韩文存储和显示,执行以下查询:

SELECT value FROM nls_database_parameters WHERE parameter = 'NLS_CHARACTERSET';
  • 若返回结果为AL32UTF8(通用UTF-8字符集,支持所有语言)或KO16KSC5601(韩文专用字符集),则数据库字符集符合要求。
  • 若返回其他字符集(如WE8ISO8859P1),需考虑重新创建数据库并指定支持韩文的字符集(注意:ALTER命令修改字符集存在数据损坏风险,不建议直接操作)。

2. 配置客户端NLS_LANG环境变量

客户端的NLS_LANG必须与数据库字符集兼容,才能正确传输韩文:

Windows系统

  • 系统环境变量:右键「此电脑」→ 属性 → 高级系统设置 → 环境变量,新建系统变量NLS_LANG,值设为KOREAN_KOREA.AL32UTF8(或AMERICAN_AMERICA.AL32UTF8)。
  • 注册表配置:打开注册表编辑器,定位到HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_<你的OracleHome名称>,修改NLS_LANG键值为上述字符集组合。

Linux/Unix系统

在用户shell配置文件(如.bashrc、.profile)中添加:

export NLS_LANG=KOREAN_KOREA.AL32UTF8

执行source ~/.bashrc使配置生效。

3. 调整客户端工具编码设置

PL/SQL Developer

  • 打开「工具」→「首选项」→「连接」,将「字符集」设置为AL32UTF8。
  • 右键PL/SQL Developer快捷方式→属性,在「目标」栏末尾添加 -codepage UTF8,确保工具以UTF-8编码运行。

SQL*Plus

  • Windows命令提示符:执行chcp 65001切换到UTF-8编码,再启动SQL*Plus。
  • Linux/Unix终端:确保终端编码为UTF-8,可通过export LC_ALL=en_US.UTF-8设置。

本地编辑器

编辑查询语句时,使用UTF-8编码的编辑器(如Notepad++、VS Code),避免因编码不一致导致韩文转义为问号。

验证配置

完成上述设置后,重新连接数据库,执行查询:

SELECT '안녕하세요' FROM dual;

若返回正确的韩文,则配置生效。

内容的提问来源于stack exchange,提问作者Duy Nguyen TPV

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 19:15:15