Apcahe+Python Webserver 显示乱码问题
来源:互联网 发布:门罗主义 知乎 编辑:程序博客网 时间:2024/06/03 17:33
在Apache + Python 架构的一个Webserver上有一些报表的内容,其中之一是从Access数据库中读取报警信息,并显示在网页上。当报警内容是英文时,一切正常。当报警信息是俄语或中文时,都显示????????。
经过分析,在Python中从数据库查询到数据时,其结果就已经是?????的,初步分析与Python脚本对结果的处理关系不大。应该是操作系统、Python、Apcahe、数据库之间的编码和解码问题。
当操作系统是英文并且Non-Unicode程序的语言也是英语时,,
分析从数据库中查询回来的结果,其长度是19字节,而且显示全是????,因为实际的中文描述是“打标器工作站热印上部/下部温度过低警报”如果按每个字符一个字节,正好是19个字节。
当操作系统是中文,并把Non-Unicode程序的语言也选成中文时,分析从数据库中返回的结果,其长度变成了37,正好是把中文算成了2个字节,中间的/算成1个字节。看上去更接近正常显示了:
'\xb4\xf2\xb1\xea\xc6\xf7\xb9\xa4\xd7\xf7\xd5\xbe\xc8\xc8\xd3\xa1\xc9\xcf\xb2\xbf/\xcf\xc2\xb2\xbf\xce\xc2\xb6\xc8\xb9\xfd\xb5\xcd\xbe\xaf\xb1\xa8'
当在中文操作系统下把以上内容赋值给一个变量并打印时,正好就是打标器工作站热印上部/下部温度过低警报”。看来的确是编码、解码问题。
经过在网上询问,果然有人建议把网页的字符集设成utf-8
提问网址
<meta charset="utf-8" />
但是我这里是Apache+Python的架构,怎么找到设字符集的地方呢?
去Apcahe的配置文件里一找,果然有一个:
AddDefaultCharset ISO-8859-1
ISO-8859-1编码是单字节编码,所以把中文字符都当成一个字节了。
于是把这个设置改成:
AddDefaultCharset utf-8
但是设定成utf-8并不能正常显示。
再试试gbk:
AddDefaultCharset gbk
一测之下,果然中文正常显示了, 更令人惊奇的是,连俄文也正常显示了!!!
这下等于一次解决了两个问题,简直太好了!!!!
在英文操作系统下,修改IE的internet选项》字体时,原来是拉丁语,改成简体中文确定后,并不能成功修改,而是又回到了拉丁语。后来在控制面板把Non-Unicode程序的语言改成简体中文,回到IE的internet选项一看,字体果然自动改成了简体中文。网页上的???也变成了和上面图中的乱码一样了。于是按以上操作,把英文系统的乱码问题也改正好了。
- Apcahe+Python Webserver 显示乱码问题
- WebServer------Client(浏览器)乱码问题
- python抓取中文网页显示乱码问题
- Python连接Mysql&&解决数据库汉字显示乱码问题
- python 解决抓取网页中的中文显示乱码问题
- 关于Python获取SQLSERVER数据库中文显示乱码问题
- Python pandas plot输出图形中显示中文乱码问题
- python tornado 搭建webServer
- python访问webserver服务
- xmlhttp显示乱码问题
- 字符显示乱码问题
- 显示中的乱码问题
- 页面显示乱码问题
- JSP显示乱码问题
- vim乱码显示问题
- 显示乱码问题
- 页面显示乱码问题
- Python经典问题——中文乱码:打印中文时显示乱码
- (poj 1724 ROADS)<二维最短路+DP>
- Git教程之一个团队如何在github上协作开发
- 华为OJ——找出字符串中第一个只出现一次的字符
- Android之jni出现JNIEnv has no member named 'GetMehtodID'解决办法
- JAVASCRIPT的第四天
- Apcahe+Python Webserver 显示乱码问题
- caffe vs 2013 cpu 训练minist
- 每天进步一点点——五分钟理解一致性哈希算法(consistent hashing)
- openfire服务的安装(二)
- CF GYM 100741 A Queries
- Android对EditText做输入限制
- python使用递归、尾递归、循环三种方式实现斐波那契数列
- Python3 怎么将Unicode转中文,以及GBK乱码ÖйúÉÙÊýÃñ×åÌØÉ«´åÕ¯
- webrtc视频采集