【问题标题】:Python 2.7 connection to Oracle: loosing (Polish) charactersPython 2.7 与 Oracle 的连接:丢失(波兰语)字符
【发布时间】:2016-09-29 21:10:45
【问题描述】:

我从 Python 2.7 连接到 Oracle 数据库。 当我使用时:

cursor.execute("SELECT column1 FROM table").fetchall()]

我得到了几乎正确的 column1 值,因为所有波兰字符(“ęóąśłżćń”)都被转换为 ascii 之一(“eoaslzcn”)。使用 SQLDeveloper 等其他工具并使用相同的 select 语句,我得到了正确的值。

【问题讨论】:

  • 字符在哪里丢失?甲骨文->蟒蛇?还是python->输出环境?
  • Oracle 中的字符丢失 -> Python - 下面是解决方案:)

标签: python oracle python-2.7 character-encoding polish


【解决方案1】:

尝试将环境变量NLS_LANG 设置为您的数据库语言字符串,类似于

os.environ['NLS_LANG'] = 'POLISH_POLAND.EE8MSWIN1250'

【讨论】:

    【解决方案2】:

    @Mark Harrison - 非常感谢!有用!我做了一个确切的说明:

    我在 Oracle 中查了是什么语言:

    SELECT USERENV ('language') FROM DUAL
    

    回复是:

    POLISH_POLAND.UTF8
    

    然后我在 Python 中更改了 NLS_LA 值:

    os.environ['NLS_LANG'] = 'POLISH_POLAND.UTF8'
    

    使用

    print "%s, %s" % (name, surname)
    

    and ">file.txt" in command line 我在 utf8 中获得了一个(正确的)文件。

    【讨论】:

      猜你喜欢
      • 2016-04-29
      • 1970-01-01
      • 2013-10-10
      • 2019-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多