UnicodeEncodeError: 'latin-1' codec can't encode character 解决sae flask 中文问题

#encoding=utf-8
#中文编码支持

import MySQLdb
from flask import Flask, g, request

app = Flask(__name__)
app.debug = True

from sae.const import (MYSQL_HOST, MYSQL_HOST_S,
    MYSQL_PORT, MYSQL_USER, MYSQL_PASS, MYSQL_DB
)

@app.before_request
def before_request():
    g.db = MySQLdb.connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS,
                           MYSQL_DB, port=int(MYSQL_PORT))
    #g.db.set_character_set(‘utf8‘)
g.db.set_character_set(‘utf8‘) 这句话加上去就OK了。

以下是网上的方案原帖。

"UnicodeEncodeError:‘latin-1‘ codec can‘t encode character ..."

This is because MySQLdb normally tries to encode everythin to latin-1. This can be fixed by executing the following commands right after you‘ve etablished the connection:

db.set_character_set(‘utf8‘)
dbc.execute(‘SET NAMES utf8;‘) dbc.execute(‘SET CHARACTER SET utf8;‘)
dbc.execute(‘SET character_set_connection=utf8;‘)

"db" is the result of MySQLdb.connect, and "dbc" is the result of db.cursor().

意思就是MySQLdb正常情况下会尝试将所有的内容转为latin1字符集处理

所以处理方法就是,设置连接和游标的charset为你所希望的编码,如utf8

db是connection连接,dbc是数据库游标

http://stackoverflow.com/questions/3942888/unicodeencodeerror-latin-1-codec-cant-encode-character

UnicodeEncodeError: 'latin-1' codec can't encode character 解决sae flask 中文问题

时间: 2024-10-27 07:13:05

UnicodeEncodeError: 'latin-1' codec can't encode character 解决sae flask 中文问题的相关文章

[python]UnicodeEncodeError: 'gbk' codec can't encode character 解决方法

在windows下面编写python脚本,编码问题很严重. 将网络数据流写入文件时时,我们会遇到几个编码: 1: #encoding='XXX' 这里(也就是python文件第一行的内容)的编码是指该python脚本文件本身的编码,无关紧要.只要XXX和文件本身的编码相同就行了. 比如notepad++ "格式"菜单里面里可以设置各种编码,这时需要保证该菜单里设置的编码和encoding XXX相同就行了,不同的话会报错 2:网络数据流的编码 比如获取网页,那么网络数据流的编码就是网页

'gbk' codec can't encode character解决方法

f = open("a.txt","w") ,在windows下面,新文件的默认编码是gbk,这样的话,python解释器会用gbk编码去解析我们的网络数据流txt,然而txt此时已经是decode过的unicode编码,这样的话就会导致解析不了,出现上述问题. 解决的办法就是,改变目标文件的编码: f = open("a.txt","w",encoding='utf-8') 'gbk' codec can't encode

20170427报错UnicodeEncodeError: ‘gbk’ codec can’t encode character ‘\xa0’ in position

今天写python,将网上数据流编写进文件里时遇到的,网上搜到结果并正确的进行了处理,把原文解决方法拷过来了,嘿嘿 使用Python写文件的时候,或者将网络数据流写入到本地文件的时候,大部分情况下会遇到:UnicodeEncodeError: 'gbk' codec can't encode character '\xa0' in position - 这个问题. 网络上有很多类似的文件讲述如何解决这个问题,但是无非就是encode,decode相关的,这是导致该问题出现的真正原因吗?不是的.

UnicodeEncodeError: 'ascii' codec can't encode character u'\u5728' in position 1

s = "图片picture"print chardet.detect(s) for c in s.decode('utf-8'): print c UnicodeEncodeError: 'ascii' codec can't encode character u'\u5728' in position 1 解决方案: reload(sys) sys.setdefaultencoding("utf8") UnicodeEncodeError: 'ascii' co

Python Solve UnicodeEncodeError 'gbk' / 'ascii' / 'utf8' codec can't encode character '\x??' in position ? 解决有关Python编码的错误

在Python中,处理中文字符一直是很令人头痛的问题,一言不合就乱码,而且引起乱码的原因也不尽相同,有时候是python本身默认的编码器设置的不对,有时候是使用的IDE的解码器不对,还有的时候是终端terminal的解码器不对,有时候同一份代码在Python2上正常运行,Python3上就不行了,反正产生乱码的原因很多,这里就列举一些博主遇到过的一些错误及其解决方案: Error 1: UnicodeEncodeError: 'gbk' codec can't encode character

UnicodeEncodeError: ‘gbk’ codec can’t encode character u’\u200e’ in position 43: illegal multibyte sequence

[问题] python中已获取网页: http://blog.csdn.net/hfahe/article/details/5494895 的html源码,其时UTF-8编码的. 提取出其标题部分: <span class="link_title"><a href="/hfahe/article/details/5494895"> 在2008 Beijing Perl 大会的演讲-使用Mason开发高性能的Web站点‎ </a>&

Python读取中文txt文件错误:UnicodeEncodeError: &#39;gbk&#39; codec can&#39;t encode character

1 with open(file,'r') as f: 2 line=f.readline() 3 i=1 4 while line: 5 line=line.decode('utf-8') 6 print str(i)+": "+line7 line=f.readline() 8 i=i+1 用以上代码读取一个包含中文的txt文件时,在正确地读取并打印了六百多行之后,print str(i)+": "+line这一行报错: UnicodeEncodeError:

解决“UnicodeEncodeError: &#39;gbk&#39; codec can&#39;t encode character u&#39;\xa9&#39; in position 24051: illegal multibyte sequence”错误

今天我在爬取一个网页时出现了下面这个错误: UnicodeEncodeError: 'gbk' codec can't encode character u'\xa9' in position 24051: illegal multibyte sequence 从这个错误来看应该是编码时出错了,于是我在网上查了些资料,找到了解决方法: source_code.encode('GB18030') 解释:GB18030是GBK的父集,所以能兼容GBK不能编码的字符. 解决"UnicodeEncode

UnicodeEncodeError: ‘ascii’ codec can’t encode character u’\u8888′ in position 0: ordinal not in range(168)

在将字符串写入文件时,执行f.write(str),后台总是报错:UnicodeEncodeError: 'ascii' codec can't encode character u'\u8888′ in position 0: ordinal not in range(168),即ascii码无法被转换成unicode码.在仔细推敲后发现,我所使用的python2.7,默认编码是ascii格式.可以使用如下语句查看Python默认编码格式: >>> import sys >>