好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

SAE用flask+MySQL中文'utf8' codec can't de

CREATE DATABASE app_jcguo;

返回:

   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  
$(function () { $(‘pre.prettyprint code‘).each(function () { var lines = $(this).text().split(‘\n‘).length; var $numbering = $(‘ ‘).addClass(‘pre-numbering‘).hide(); $(this).addClass(‘has-numbering‘).parent().append($numbering); for (i = 1; i ‘).text(i)); }; $numbering.fadeIn(1700); }); });

SAE用flask+MySQL中文'utf8' codec can't decode byte 0xb7解决方法

标签:sae   flask   mysql   mysql中文   utf8   

查看更多关于SAE用flask+MySQL中文'utf8' codec can't de的详细内容...

  阅读:22次