在甲骨文中的希腊字符集

时间:2011-05-18 14:29:00

标签: oracle

我在oracle 11g中遇到了希腊字符的问题。它只显示一些希腊字符,所有其他字符显示'?'。我已经完成了上面所有的事情,我在互联网上发现但无法解决这个问题。

我使用win vista(rus / eng版本)并设置希腊mui。我已将注册表中的NLS_LANG更改为EL8MSWIN1253(我已更改),我的系统nls_lang在注册表中也是1253。

当我打电话时:

SELECT * FROM NLS_INSTANSE_PARAMETERS

我得到NLS_LANGUAGE=AMERICANNLS_TERRITORY=AMERICA。我用Unicode字符集设置了oracle。

我试着打电话

ALTER SESSION SET NLS_LANG=GREEK_GREECE.EL8MSWIN1253

但这不起作用。当我打电话

ALTER SESSION SET NLS_LANGUAGE=GREEK

ALTER SESSION SET NLS_TERRITORY=GREECE
甲骨文称“会议改变了”,但没有任何改变。

有人可以帮助我吗?

4 个答案:

答案 0 :(得分:1)

在Windows中:不要使用Windows字体(例如在Windows应用程序中使用的字体,例如SQL Developer中的字体)将命令外壳/命令提示符(在Windows下)中使用的字体搞乱。 如果您希望在命令提示符下的SQL * Plus下正确显示希腊字符:

识别活动的代码页:

C:\> chcp

系统应该使用代码页号进行响应。这对于希腊语来说应该是:

  

活动代码页:737

737对应于 EL8PC737 Oracle客户端字符集(NLS_LANG的第3部分)。见:http://www.oracle.com/technetwork/database/database-technologies/globalization/nls-lang-099431.html#_Toc110410555

设置Oracle NLS环境变量:

C:\> set NLS_LANG= GREEK_GREECE.EL8PC737

现在登录SQL * Plus,您将能够在查询结果中正确查看希腊字符。

为任何其他国家语言制作类似的设置。

Panos Zafiropoulos

答案 1 :(得分:0)

您是否在注册表中将NLS_LANG设置为.EL8MSWIN1253(注意前缀点)?

NLS_LANG的格式是:

NLS_LANG = language_territory.charset

...而Oracle® Database Globalization Support Guide manual写道:

  

NLS_LANG的所有组件   定义是可选的;任何项目   未指定使用其默认值   值。 如果您指定领土或   字符集,然后你必须包括   前面的分隔符 [下划线   (_)为领土,期间(。)为   字符集]。否则,价值   被解析为语言名称。

答案 2 :(得分:0)

只是指出字符集转换发生两种方式。因此,如果客户端在其数据库会话指示美国字符集时插入“希腊”字符,则该字符将从美国转换为UTF-8(或任何数据库字符集)。随后通过具有希腊字符集的会话进行选择将导致将字符从UTF-8转换为希腊语,这可能不是您开始使用的。

使用select DUMP(col)查看数据库中记录的字节数,然后您可以确定数据库是否具有正确的字符表示形式。

答案 3 :(得分:0)

右键单击我的电脑>预先系统设置>提前>环境变量

单击New TAB上的System变量

变量名称:NLS_LANG 变量值:GREEK_GREECE.EL8MSWIN1253

变量名称:NLS_NUMERIC_CHARACTERS 变量值:。,