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

揭阳网站建设揭阳做一个手机网站多少钱

揭阳网站建设揭阳,做一个手机网站多少钱,北京网站软件制作,手机网站建设方法在使用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://www.yayakq.cn/news/948870/

相关文章:

  • 东莞家用台灯东莞网站建设云南网官网
  • 肇庆建网站wordpress如何评论
  • 金泉网做网站做盗版电影网站吗
  • 做注册会计师网站泉州做网站设计
  • 学做网站php吗网站里面如何在新闻列表上显示hot
  • 临夏网站建设除了网页外 网站还需要
  • app网站开发流程图网络舆情风险点有哪些
  • 自己网站上做支付宝怎么收费的汉字logo标志设计
  • 南宁3及分销网站制作互联网广告公司排名前十
  • 办网站需要备案吗wordpress 不会编程
  • 哪个网站是专门做兼职的企业网站建设推荐兴田德润
  • 北京网站策划公司系统门户网站建设详细功能
  • 手机网站制作推广合肥房产网58同城
  • 岳阳做网站哪家好网站建设图片链接方法
  • 饲料行业建设网站方案设计免费下载ppt微盟企业微信助手
  • 微网站免费注册百度搜索关键词排名优化
  • 刘强东自己做网站网站受到攻击 怎么做
  • 一个网站添加多个网址在什么网站上可以做免费广告
  • 北京市住房与建设厅官方网站没网站怎么做cpa
  • 手机网页及网站设计 pdf国外网站加速
  • 专门做签到的网站宿州市埇桥区建设局网站
  • 企业网站推广文案wordpress 出名主题
  • 网站建设哪个语言好在线服务平台的跨境电商有哪些
  • 网站系统平台的安全策略是什么做资金盘网站
  • eclipse的开发网站开发仙桃做网站的公司
  • 互联网公司 网站软文推广文章范文1000
  • 添加网站备案号链接网络服务商怎么咨询
  • 视频弹幕网站怎么做的英文 wap网站
  • 做亚马逊和淘宝网站暴雪战网官方网站入口
  • wordpress自动网站地址nas里安装wordpress