PLSQL developer中编译将utf-8字符转为问号

Compilation converts utf-8 characters to question mark in PLSQL developer

我正在使用 PLSQL developer 来处理 oracle 数据库。当我编译一个存储这样代码的视图时:

select 'xidmət' as service from dual

字符串中的'ə'字符变为'?'字符。

我觉得是oracle或者plsql开发者的配置问题,不知道what.What你觉得是什么问题?

需要根据您的语言偏好配置您的系统NLS_LANG参数。这是 link:

http://www.nazmulhuda.info/setting-nls_lang-environment-variable-for-windows-and-unix-for-oracle-database

例如,我们有像“ąčęėįšųū”这样的字母。因此,为了在 pl/sql 中看到它们,我们将 NLS_LANG 设置为值 "LITHUANIAN_LITHUANIA.BLT8MSWIN1257"。

希望对您有所帮助。祝你好运。

首先,检查您的字符集使用的是什么:

select value from nls_database_parameters where parameter='NLS_CHARACTERSET';

然后将您的 NLS_LANG 环境变量设置为 AMERICAN_AMERICA.CHARSET,其中 CHARSET 是在 select 中找到的值。如果您在 Windows 中,则必须转到“控制面板”、“系统”、“高级”、“环境变量”,然后在“系统变量”下设置 NLS_LANG。

Oracle 至少在客户端和数据库之间进行了 'one-pass' 转换,但问题是客户端和数据库之间有很多层,包括您的客户端软件,通常最好匹配您的客户端NLS_LANG 与数据库设置。

这也取决于该字符是如何插入的。它可能是使用不同的 NLS_LANG 使用不同的客户端工具插入的,因此在从 select.[= 获得一致的视图之前,您可能必须更新扩展的 ASCII 字符(或外来字符) 11=]