我有一个关于在oracle(PL / SQL Developer)中配置泰语的问题。我在'AMERICAN_AMERICA.TH8TISASCII'
中配置了泰语regedit
。我还在我的计算机中配置了环境变量。但是当我连接PL / SQL开发人员并检索数据时,应该显示泰语描述的列显示垃圾数据。请帮帮我。
垃圾数据示例为'¿¿¿¿¿¿¿¿'
Oracle配置如下:
regedit->computer->HKEY_LOCAL_MACHINE->SOFTWARE->ORACLE->KEY_OraDB11g_home1
Windown配置如下:
Mycomputer->高级系统设置 - >高级系统 设置 - >环境变量 - > (这里我添加了变量)
相同的配置由我的同行完成,他们得到了配置,但我无法做到这一点
答案 0 :(得分:0)
我在注册表中配置了泰语'AMERICAN_AMERICA.TH8TISASCII'。
这表示您已将 NLS_LANGUAGE 配置为AMERICAN
,将 NLS_TERRITORY 配置为AMERICA
。哪个错了。
您应该选择以下内容:
NLS_LANGAUGE=THAI
NLS_TERRITORY=THAILAND
您需要在以下位置执行此操作:
我认为你的角色很好。
UPDATE OP解决了PL / SQL Developer工具的问题。
您可以在 PL / SQL Developer安装目录中的 AfterConnect.sql 文件中输入“alter session”命令。例如:
alter session set nls_date_format ='dd-mm-yyyy'; alter session set nls_territory ='THAILAND'; alter session set nls_language ='THAI';
答案 1 :(得分:0)
我假设您在PL / SQL Developer中选择的字体不支持泰语字符。尝试使用此命令检查:
SELECT UNISTR('Kho Khuat: \0E03') FROM DUAL;
你得到这样的正确输出吗?
Kho Khuat: ฃ
如果没有,您应该选择支持泰语字符的字体。 您可以使用此页面FileFormat.info来检查哪个字体支持您的角色。
NLS_LANG
的值应与本地环境设置匹配,而不是与数据库中的设置相匹配。通过这种方式,所有字符都在SQL通信中正确翻译。
使用此命令检查本地环境:
c:\>reg query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage /v ACP
就我而言,它是
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage
ACP REG_SZ 1252
因此,我的NLS_LANG应该设置为.WE8MSWIN1252
或类似的东西。
但,这仅在您的应用程序(在您的情况下为SQL Developer)使用Windows中的默认编码设置时才有效。在某些应用程序中,您可以更改它 - 通常您可以在本地代码页和Unicode(UTF-8)之间切换。在这种情况下,您必须相应地修改NLS_LANG
。