Sij*_*ari 3 python oracle cx-oracle
我正在尝试将Portuguese文本插入到我的表格中。但是,它给出了'ascii' codec can't encode character '\xea'错误。
这是我在做什么:
os.environ["NLS_LANG"] = ".AL32UTF8"
query = "INSERT INTO MESSAGE (MESSAGE,LANGUAGE) VALUES (:MESSAGE,:LANGUAGE)"
data = {'MESSAGE': '..... assistência para ajuda responda AJUDA Sua', 'LANGUAGE': 'Portuguese'}
cursor = conn.cursor()
cursor.execute(query, data)
.....
Run Code Online (Sandbox Code Playgroud)
我的表结构:
CREATE TABLE MESSAGE (
language VARCHAR2(12) NOT NULL,
message NVARCHAR2(350) NOT NULL
);
Run Code Online (Sandbox Code Playgroud)
我不确定是否需要设置任何内容以将其他字符插入到数据库中。
如果要设置环境变量 NLS_LANG,则必须在创建任何连接之前进行设置;否则,它将不起作用。然而,更好的是使用以下内容来创建连接,因为这不依赖于环境变量:
connection = cx_Oracle.connect("user/password@connectString",
encoding="UTF-8", nencoding="UTF-8")
Run Code Online (Sandbox Code Playgroud)