PL/SQL 阿拉伯语显示为?

问题描述 投票:0回答:5

当我在 PL/SQL Developer 中查询包含阿拉伯文本的数据时,它显示为问号(???)。

我确信数据已正确存储在数据库中,因为它正确显示在网站上,也在服务器上。

所以我认为这是与我的 PL/SQL Developer (v8.0.4.1514) 有关的问题。

  • 有什么方法可以更改 PL/SQL Developer 显示/编码阿拉伯文本的方式吗?

  • 如何检查阿拉伯文本以什么格式/编码存储?

我的问题可能缺少一些细节,所以请问我,同时请记住,我在 PL/SQL 和 SQL 方面非常初学者。

谢谢你。

sql plsql arabic plsqldeveloper
5个回答
2
投票

我找到了一个解决方案(也可能适用于显示为“

????
”的其他语言)

我将注册表中的

NLS_LANG
更改为
AMERICAN_AMERICA.AL32UTF8

(我在注册表中发现了 3 个

NLS_LANG
,请检查每一个,或者像我一样将它们全部更改。)

然后重新启动 PL/SQL Developer,测试查询,阿拉伯文本正常显示。

谢谢大家。


1
投票

你可以通过

SET NLS_LANGUAGE
 
ALTER SESSION SET NLS_LANGUAGE = 'ARABIC'

转阿拉伯语吗

这可能是解决方案,如果不是,您可以提供有关操作系统及其版本的更多信息,...等


1
投票

可能安装了多个 oracle 实例,因此您必须为所有实例设置默认编码。只需按照以下说明操作即可:

  1. 打开注册表编辑器并转到
    Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Oracle
    。每个实例都有一个或多个键相关:

enter image description here

  1. 对于此键的 each,右键单击并创建一个名为
    NLS_LANG
    的字符串值(如果尚不存在):

enter image description here

  1. 然后将其值设置为
    AMERICAN_AMERICA.AL32UTF8
    ,然后只需在 PL/SQL 中刷新查询即可完成。

enter image description here


0
投票

跟我展示的情况一样???仅限 PL/SQL 开发人员。 对于面临同样问题的任何人,请尝试这个对我有用的解决方案 转到首选项 --> Oracle --> 连接 --> Oracle 环境变量 ... 添加一个新变量 (NLS_LANG),其值 = 'ARABIC_EGYPT.AR8MSWIN1256'


-1
投票

在寄存器中找到

NLS_LANG
并将其值从
AMERICAN_AMERICA.WE8MSWIN1252
更改为
AMERICAN_AMERICA.UTF8
对于波斯字符来说,它对我来说效果很好。

© www.soinside.com 2019 - 2024. All rights reserved.