时间:2021-07-01 10:21:17 帮助过:54人阅读
返回:
CREATE DATABASE `app_jcguo` /*!40100 DEFAULT CHARACTER SET utf8 */
以及
SHOW CREATE TABLE Hotels
我添加了default charset:
CREATE TABLE `Hotels` (
`id` int(11) NOT NULL,
`name` varchar(40) DEFAULT NULL,
`city` varchar(10) DEFAULT NULL,
`address` text,
`price` int(11) DEFAULT NULL,
`total` int(11) DEFAULT NULL,
`avail` int(11) DEFAULT NULL,
`pic_b` varchar(40) DEFAULT NULL,
`pic_s` varchar(40) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
属性也都是varchar类型并且设置为utf8_general_ci:
最后Google寻找解决方案,原来是MySQLdb.connect()还要设置一遍charset来指定cursor取数据库数据的格式:
@app.before_request
def before_request():
g.db = MySQLdb.connect(
MYSQL_HOST,
MYSQL_USER,
MYSQL_PASS,
MYSQL_DB,
port=int(MYSQL_PORT),
charset = ‘utf8‘
)
第一次用MySQL存中文,遇到此坑,遂记录在Blog上。SQLite所有操作默认都是UTF-8,TAT,老用python+SQLite就忽略了这个问题。
对了,文件头中别忘了添加编码注释:
# -*- coding:utf8 -*-
#encoding = utf-8
SAE用flask+MySQL中文'utf8' codec can't decode byte 0xb7解决方法
标签:sae flask mysql mysql中文 utf8