Linux

SQLplus 和 Oracle,UTF-8 顯示錯誤

  • September 4, 2018

我已經設定

export NLS_LANG=Italian_ITALY.UTF8

db 是 UTF-8

SELECT * FROM NLS_DATABASE_PARAMETERS
NLS_CHARACTERSET                                                            |AL32UTF8

但是 sqlplus 顯示壞ò à ì字元。

select titolo from generale where titolo like '%%Roma d%%';

TITOLO
------------------------------------------------------------
Roma drogata: la polizia non pu�� intervenire

一定是

select titolo from generale where titolo like '%%Roma d%%';

TITOLO
------------------------------------------------------------
Roma drogata: la polizia non può intervenire

我試過 AIX 和 Linux 客戶端,都在 UTF-8 上。

我想念什麼?

該問題未提及實際的語言環境設置。根據Oracle,NLS_LANG應該設置為與那些相對應。如果您的實際語言環境未使用 UTF-8,您將獲得問題中所示的替換字元。

進一步閱讀:

如何為 UNIX 正確設置 NLS_LANG

要指定客戶端 Oracle 軟體的區域設置行為,您必須設置**NLS_LANG參數。它設置客戶的語言、地域和字元集。您需要檢查語言環境設置以NLS_LANG**根據它設置您的第三個欄位(字元集)。為此,請使用如下所示的“locale”命令:

7- Locale 和 NLS_LANG是否需要匹配數據庫字元集?

不,區域設置和**NLS_LANG**設置(以及如果適用的話 telnet/ssh 配置)需要匹配,但它們在技術上都與數據庫字元集無關,它們僅與該客戶端環境相關。

引用自:https://unix.stackexchange.com/questions/204423