添加到mysql选项卡时发生Python编码错误

2024-06-08 18:32:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下模式:

CREATE TABLE language (
    language varchar(100) COLLATE utf8_bin NOT NULL,
    PRIMARY KEY (language)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

我有以下代码向数据库中添加一种语言

self.cursor.execute("""INSERT IGNORE INTO language (language)  
                    VALUES (%s)""", 
                   (["PORTUGUÊS".encode('utf-8')]))
self.conn.commit()

表和数据库是为utf8\u bin编码的。问题是。。。如果这个词不存在,它会毫无困难地添加。如果存在以下错误:

UnicodeEncodeError: 'ascii' codec can't encode character u'\xca' in position 24: ordinal not in range(128)

几个小时来我一直在挠头


Tags: inself数据库bincreatetable模式not