【问题标题】:greek character set in oracleoracle中的希腊字符集
【发布时间】:2011-08-28 03:09:26
【问题描述】:

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

我使用 win vista(rus/eng 版)并设置了 greek 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

Oracle 说“会话已更改”,但没有任何变化。

谁能帮帮我?

【问题讨论】:

    标签: oracle


    【解决方案1】:

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

    NLS_LANG 的格式是这样的:

    NLS_LANG = language_territory.charset
    

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

    NLS_LANG 的所有组件 定义是可选的;任何物品 未指定使用其默认值 价值。 如果您指定区域或 字符集,那么你必须包括 前面的分隔符 [下划线 (_) 代表地区,句号 (.) 代表 字符集]。否则,值 被解析为语言名称。

    【讨论】:

    • 你的意思是我应该在 NLS_LANG 中写 .EL8MSWIN1253 ?我没有这样做。我会检查这个。谢谢安德斯
    • 我检查了这个,我正在写:GREEK_GREECE.EL8MSWIN1253,这不是正确的吗?
    • 我认为这是放入注册表的正确值,是的。
    • 在没有任何线索的情况下很难判断,您能否更新您的问题?
    • 这里有同样的问题!当我用希腊字符查询我的数据库时,我得到???结果。
    【解决方案2】:

    只是要指出字符集转换是双向发生的。因此,如果客户端在其数据库会话指示美国字符集时插入“希腊”字符,则该字符将从 American 转换为 UTF-8(或任何 DB 字符集)。带有希腊字符集的会话的后续选择将导致字符从 UTF-8 转换为希腊语,这可能不是您开始使用的。

    使用select DUMP(col)查看数据库中记录的字节,就可以判断数据库是否有正确的字符表示。

    【讨论】:

      【解决方案3】:

      在我的电脑上右键>高级系统设置>高级>环境变量

      单击新选项卡上的系统变量

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

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

      【讨论】:

        【解决方案4】:

        在 Windows 中:不要将 Command Shell/命令提示符(在 Windows 下)中使用的字体与 Windows 字体(例如,在 Windows 应用程序中使用的字体,如 SQL Developer 中的字体)混淆。 如果您希望在命令提示符下的 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,您将能够在查询结果中正确地看到希腊字符。

        对任何其他国家语言进行类似设置。

        帕诺斯·扎菲罗普洛斯

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2016-04-02
          • 2013-09-30
          • 1970-01-01
          • 1970-01-01
          • 2013-08-17
          • 2021-10-26
          • 1970-01-01
          相关资源
          最近更新 更多