Python代码从CX-Oracle结果集读取数据,不应将非英文字符转换为字符串



以下是我要做的:

我正在从cx_Oracle中读取结果集,并使用python将其转换为json格式。

因此,我遇到的问题是,有一些非英语字符正在转换为字符串并将其转换为英语字符(例如,在我的案例中,"Luís"转换为"Luis")。有人能帮我解决这个问题吗?

以下是转换为json字典的代码片段

def __execute_select(sql, cursor, **kwargs):
    cursor.execute(sql, **kwargs)
    columns = [i[0] for i in cursor.description]
    return [dict(zip(columns, row)) for row in cursor.fetchall()]

确保将NLS_LANG设置为支持要检索的字符的字符集。如果这不是问题所在,请提供SQL*Plus的输出、Python的等效输出以及正在使用的各种字符集。

是的,我玩了一些NLS_Lang,我发现这个os.environ["NLS_LANG"] = ".AL32UTF8"对我有效,然后我尝试用utf-8解码,所以它有效。

最新更新