py-mysql2pgsql icon indicating copy to clipboard operation
py-mysql2pgsql copied to clipboard

UnicodeEncodeError: 'latin-1' codec can't encode characters in position 0-8: ordinal not in range(256)

Open YOOC94 opened this issue 5 years ago • 3 comments

The Chinese comment in the mysql table, an error is reported during the conversion:

UnicodeEncodeError: 'latin-1' codec can't encode characters in position 0-8: ordinal not in range(256)

How to solve this problem?

YOOC94 avatar Mar 26 '19 09:03 YOOC94

Hi, I can't resolve this problem. I find different path for convert data (xml)

ssu1980 avatar Mar 26 '19 11:03 ssu1980

Can you provide some minified example demonstrating the problem? MySQL database dump preferred.

kworr avatar Mar 26 '19 11:03 kworr

Mysql statement to create a table:

CREATE TABLE auth_user(user_idbigint(11) NOT NULL AUTO_INCREMENT,usernamevarchar(20) NOT NULL COMMENT '用户名、登录名',nicknamevarchar(20) NOT NULL COMMENT '姓名',passwordvarchar(50) NOT NULL,create_timetimestamp NULL DEFAULT CURRENT_TIMESTAMP,update_time timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (user_id) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COMMENT='用户表(登录账号)';

When mysql database has the above table, use py-mysql2pgsql to convert create table statement will be the following error: comments.append('COMMENT ON TABLE %s is %s;' % (table.name, QuotedString(table.comment).getquoted())) UnicodeEncodeError: 'latin-1' codec can't encode characters in position 0-8: ordinal not in range(256)

YOOC94 avatar Mar 26 '19 11:03 YOOC94