重音字母和 sql plus/AIX

accented letters and sql plus/AIX

我有一个 plsql 脚本,我在 sql 开发人员中修改了它(编码 = UTF8)。我使用 Filezilla(transfert 二进制文件)将我的脚本放在服务器上。在服务器上,NLS_LANG 是 AMERICAN_FRANCE.WE8ISO8859P1。

在我的脚本中我添加了:

ALTER SESSION SET NLS_LANG=FRENCH_FRANCE.UTF8; 

我在 sql plus 会话中启动脚本:字符显示不正确。

我怎样才能让它发挥作用?

谢谢


在启动 sql 文件的 putty 会话中,我这样写:

$ORACLE_HOME/bin/sqlplus id/psw@$ORACLE_SID @$P_SQL/myfile.sql

在文件中,显示是这样的例如:

center 'à è é ê ô à ë î ï ù' skip 1 -

在线轴内。

尝试将 NLS_LANG 设置为 AMERICAN_AMERICA.US8PC437.

在这里查看我对类似问题的回答:

when-insert-persian-character-in-oracle-db-i-see-the-question-mark

首先,putty的设置Windos/Translation/Remote_character_set和环境变量LC_CTYPE要匹配,例如:ISO-8859-1fr_FR.ISO8859-1;或 UTF-8fr_FR.UTF-8

注意:LC_CTYPE可以远程设置(putty:Connection/Data/Environment_variables),如果/etc/ssh/sshd_config允许if(AcceptEnv)

此外,如果您的 AIX 支持选定的字符集,也没有什么坏处,请使用 locale -a

查看

If/when 每个字符都在 ksh/bash/mc/etc 中工作然后你可以尝试使用 Oracle 进行试验:将 NLS_LANG 设置为 american_america.WE8ISO8859P1american_america.AL32UTF8(与 LC_CTYPE 和翻译同步)

PS:我认为您应该在启动任何 Oracle 程序之前设置 NLS_LANG,ALTER SESSION 不会更改字符集。