首页 > 解决方案 > SQL Developer 特殊字符

问题描述

我在使用 Oracle 数据库和 ASCII 字符编码时遇到问题。

我正在尝试在 Varchar2() 列上使用包含特殊字符(如 á、é、í、ó、ú、(西班牙语)等)的字符串制作更新句子。

每次我从该列恢复数据时,例如,我没有看到“ó”,而是得到“髇”或“髇”。

我正在写更新句子,例如:

UPDATE TABLE_1
SET DESCRIPTION = 'THIS IS A TEXT WITH SPECIAL CHAR ó ÉND'
WHERE ID = '1';

当我这样做时:

SELECT ID ||' | '|| DESCRIPTION FROM TABLE_1 WHERE ID = '1';'

我有:

1 | THIS IS A TEXT WITH SPECIAL CHAR 髇 END

我正在使用 SQL Developer 版本 4.0.3

感谢您的帮助。

标签: oraclecharacter-encodingasciioracle-sqldevelopernon-ascii-characters

解决方案


您必须检查注册表中的 Nlslang 和数据库字符集,它们似乎不同。

例子:

SELECT * FROM v$nls_parameters WHERE parameter LIKE 'NLS_CHARACTERSET'
/

PARAMETER                                                        VALUE
---------------------------------------------------------------- ----------------------------------------------------------------
NLS_CHARACTERSET                                                 AL32UTF8

从注册表转到 oracle 注册表并在 nlslang 中添加值American_America.Al32UTF8(例如)类似于您在数据库中的值。

顺便说一句,有时它也来自控制面板中的语言,如果你想使用法语字符,最好将其分配为法语。(控制面板\时钟、语言和区域...然后在管理选项卡中)


推荐阅读