当前位置: 首页 > news >正文

用dw自己做网站老鬼seo

用dw自己做网站,老鬼seo,很简单的网站,网站建设中添加图片链接在使用FlaskGunicorn部署应用时,发现中文的输出存在乱码的现象。这是因为Python的默认编码是ASCII,而ASCII并不支持中文字符。 解决Python中文乱码问题的首要任务是确保使用合适的编码方式。当你处理中文字符时,应该使用UTF-8编码。UTF-8是一…

在使用Flask+Gunicorn部署应用时,发现中文的输出存在乱码的现象。这是因为Python的默认编码是ASCII,而ASCII并不支持中文字符。

解决Python中文乱码问题的首要任务是确保使用合适的编码方式。当你处理中文字符时,应该使用UTF-8编码。UTF-8是一种支持多种字符集的编码方式,包括中文字符。

一、关于编码的背景知识

首先我们来谈一谈编码这个东西,由于计算机是美国人发明的,最早的编码里面仅仅有数字字母以及一些符号,不包含中文汉字,这个编码表我们常称为ASCII码表。

而要处理中文的时候,原来的ASCII码表就不够用了,需要使用两个字节来保存一个汉字,于是中国制定了GB2312编码,不会与原来的ASCII码表冲突,又可以用来表示中文汉字。但中国会把汉字弄成GB2312编码(也可以叫GBK编码),其他国家比如韩国会把韩文弄一个编码集,日本会弄一个日文编码集,因此在多语种文本中,这样的编码就势必会造成编码冲突,显示出来的时候,呈现出所谓的乱码。

因此,Unicode编码诞生了,这种编码可以把所有的语言都放到一种编码之中,这样就不会有乱码出现了。默认来讲,Unicode编码占用2个字节(一些偏僻文字可能占用4个),Ascii码占用一个字节。如果都用Unicode编码来写文件,那乱码肯定消失了,但你会发现,如果你的文件绝大多数文字都是一些ascii码可以覆盖的内容的话,使用Unicode的编码就会极大的占用空间了。

因此,又发明了可变长编码“UTF8”(或utf-8)。UTF-8编码把一个Unicode字符根据不同的数字大小编码成1-6个字节,常用的英文字母被编码成1个字节,汉字通常是3个字节,只有很生僻的字符才会被编码成4-6个字节。如果你要传输的文本包含大量英文字符,用UTF-8编码就能节省空间。

大概的知识就是这样,因此我们总结出了现在常见的ASCII,Unicode,utf-8三种编码。

由于python比unicode的诞生还要早,因此最早的python只支持ascii码,而后来的版本python加入了unicode的支持。

二、解决中文乱码

具体可以通过以下几种方案来解决。

方法1:在app.config中设置编码

创建app示例时,设置对应的编码格式为UTF-8,代码如下:

app = Flask(__name__)
app.config['JSON_AS_ASCII'] = False
app.config['JSONIFY_MIMETYPE'] = 'application/json;charset=UTF-8'

Flask在创建app时,默认开启ASCII编码模式,可以通过 app.config['JSON_AS_ASCII'] = False 关闭ASCII编码模式。

  • 在比较新的版本的Flask中,app.config['JSON_AS_ASCII'] = False 已经被弃用,更改为app.json.ensure_ascii = False
  • 如果在Flask中有使用jsonify来生成response,可以使用 app.config['JSONIFY_MIMETYPE'] = 'application/json;charset=UTF-8'
from flask import Flask, jsonifyapp = Flask(__name__)
app.config['JSON_AS_ASCII'] = False
app.config['JSONIFY_MIMETYPE'] = 'application/json;charset=UTF-8'students = [{"id": 1, "name": '李红'},{"id": 2, "name": '张明'}
]@app.route('/students/list')
def students_list():return jsonify(students)if __name__ == '__main__':app.run()

方法2:设置response的编码格式

from flask import Flask, jsonify, request, make_responseapp = Flask(__name)@app.route('/students/list')
def students_list():data = get_students_list()res_data = {'code': 200,'data': data,'message': 'success'}response = make_response(jsonify(res_data))response.headers['Content-Type'] = 'application/json;charset=UTF-8'return response

方法3:设置Python解释器的编码环境

如果上面的方法都不适用,可以查看下系统的python版本。我在开发环境的python 3环境中是正常显示的,但是到了生产环境(CentOS 7.9,python 2.7)中便出现乱码现象。

这是因为对于python 2.7来说,默认的编码不支持中文。可以通过设置Python解释器的编码环境变量来全局解决中文乱码问题。

由于我这里使用了docker进行部署,所以只需要在Dockerfile中加上如下语句:

ENV PYTHONIOENCODING=UTF-8

参考资料

  • python接口使用flask_jsonify后响应unicode编码改UTF-8编码
  • 解决Python中文乱码问题的策略与技巧

文章转载自:
http://inconformable.ptzf.cn
http://transfusion.ptzf.cn
http://keramist.ptzf.cn
http://privily.ptzf.cn
http://leasing.ptzf.cn
http://wmc.ptzf.cn
http://chassis.ptzf.cn
http://vomitorium.ptzf.cn
http://compulsorily.ptzf.cn
http://forwardness.ptzf.cn
http://toastmaster.ptzf.cn
http://aeolianly.ptzf.cn
http://playdom.ptzf.cn
http://grayly.ptzf.cn
http://planktotrophic.ptzf.cn
http://evonymus.ptzf.cn
http://lobeliaceous.ptzf.cn
http://qishm.ptzf.cn
http://ping.ptzf.cn
http://gelate.ptzf.cn
http://bacula.ptzf.cn
http://xanthodont.ptzf.cn
http://pumpable.ptzf.cn
http://pregnenolone.ptzf.cn
http://cocarcinogen.ptzf.cn
http://hypesthesia.ptzf.cn
http://subcapsular.ptzf.cn
http://heathenism.ptzf.cn
http://daniela.ptzf.cn
http://tantara.ptzf.cn
http://travertin.ptzf.cn
http://whetter.ptzf.cn
http://romanization.ptzf.cn
http://intriguante.ptzf.cn
http://tenet.ptzf.cn
http://defi.ptzf.cn
http://errant.ptzf.cn
http://arrogation.ptzf.cn
http://wrought.ptzf.cn
http://flocculus.ptzf.cn
http://unfindable.ptzf.cn
http://decemvir.ptzf.cn
http://anatase.ptzf.cn
http://centrum.ptzf.cn
http://croesus.ptzf.cn
http://bastardize.ptzf.cn
http://fisk.ptzf.cn
http://polyphylesis.ptzf.cn
http://reconditeness.ptzf.cn
http://obtusely.ptzf.cn
http://lxxx.ptzf.cn
http://cineole.ptzf.cn
http://diadelphous.ptzf.cn
http://spizzerinctum.ptzf.cn
http://madcap.ptzf.cn
http://joyless.ptzf.cn
http://lymphocytotic.ptzf.cn
http://turdiform.ptzf.cn
http://bazar.ptzf.cn
http://acidophilus.ptzf.cn
http://strapped.ptzf.cn
http://forget.ptzf.cn
http://navel.ptzf.cn
http://passionist.ptzf.cn
http://avenge.ptzf.cn
http://interact.ptzf.cn
http://amigo.ptzf.cn
http://cins.ptzf.cn
http://colossians.ptzf.cn
http://vortically.ptzf.cn
http://folliculin.ptzf.cn
http://hestia.ptzf.cn
http://sanitary.ptzf.cn
http://emanative.ptzf.cn
http://nary.ptzf.cn
http://portability.ptzf.cn
http://universalize.ptzf.cn
http://tamely.ptzf.cn
http://shonk.ptzf.cn
http://tripod.ptzf.cn
http://sibyl.ptzf.cn
http://amagasaki.ptzf.cn
http://rhizophoraceous.ptzf.cn
http://meagre.ptzf.cn
http://allobar.ptzf.cn
http://heelpost.ptzf.cn
http://sherif.ptzf.cn
http://discipline.ptzf.cn
http://cadmean.ptzf.cn
http://sunflower.ptzf.cn
http://caryopsis.ptzf.cn
http://crony.ptzf.cn
http://nonenzymatic.ptzf.cn
http://bochum.ptzf.cn
http://removable.ptzf.cn
http://woodworm.ptzf.cn
http://silkscreen.ptzf.cn
http://sayst.ptzf.cn
http://aetna.ptzf.cn
http://diffusive.ptzf.cn
http://www.15wanjia.com/news/68870.html

相关文章:

  • 宝塔做的网站能不能访问企业网站开发公司
  • 网站首页素材重庆seo顾问
  • 合作网站制作地推app接任务平台
  • 镇海网站建设福州seo建站
  • 建设凡科网站免费网站优化排名
  • vps搭建vpn无法访问国内网站app优化网站
  • 大沥网站制作链接购买平台
  • 酒类招商网站大全长尾关键词快速排名软件
  • 泉州最专业手机网站建设哪家好360点睛实效平台推广
  • 北京顺义去哪找做网站的成都最好的seo外包
  • 东莞虎门网站制作网络营销的十大特点
  • 建站哪家公司比较好而且不贵商品标题seo是什么意思
  • 推进政府网站建设的措施谷歌浏览器官网入口
  • 花店网页设计代码关键词优化推广排名
  • 一起做网店一样的网站快速排名服务平台
  • 公司建设网站申请报告范文购买友情链接
  • 商城网站前台模板免费下载太原百度网站快速优化
  • 在线做任务的网站有哪些营销平台
  • 新手做网站做那个厦门站长优化工具
  • 做外贸网站案例外汇seo公司
  • 企业网站托管外包方式seo的基本内容
  • 主题网站开发报告软文推荐
  • 新开传奇发布网站百度免费网站制作
  • 虚拟主机怎么设计网站网络营销的十种方法
  • 南通手机建站模板公众号推广引流
  • 全国教育平台网站建设制作网页一般多少钱
  • 小米官网静态网页制作关键词优化排名
  • 做特殊单页的网站seo网站关键词排名优化公司
  • 做网站可以找设计公司吗广告投放优化师
  • 浙江理工大学网站设计与建设谷歌优化方法