免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2079 | 回复: 1

再问:python server page中有没有类似php的header函数 [复制链接]

论坛徽章:
1
数据库技术版块每日发帖之星
日期:2015-06-20 22:20:00
发表于 2012-04-14 18:31 |显示全部楼层
本帖最后由 crykun 于 2012-04-14 18:34 编辑

万能的cu,再次求助。

mod_python3.3.1 rhel 5.4  apache2.0.64环境,写的psp访问数据库的程序,

中文字符显示的是乱码,刷新一次,又正常了。关闭浏览器,输入网址,又是乱码,刷新一次,又正常。

初步排除是数据库字符集和meta <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

想写一个php类似的header()改变http的报头,不知怎么写,可有朋友知道,这是什么原因?或是问题所在?

小弟初学,高人不要笑。


下面是psp程序,一个读取oracle记录的演示程序:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>python oracle中文页</title>
</head>
<body>


<%

import cx_Oracle
import os


req.write('Hello world!')
req.write('<hr>')
req.write('python oracle 中文页')
req.write('<hr>')

os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'


db = cx_Oracle.connect('system', 'mz123456', '192.168.1.119/orcl')
c = db.cursor()
c.execute('SELECT id,xname FROM mytab order by id')
results = c.fetchall()

for result in results:
     req.write ('%s' %result[0])
     req.write (',')
     req.write ('%s' %result[1])
     req.write ('<br>')


db.close()



%>
</body>
</html>

论坛徽章:
1
数据库技术版块每日发帖之星
日期:2015-06-20 22:20:00
发表于 2012-04-19 17:46 |显示全部楼层
问题解决了,自问自答吧,字符集是个很折腾人的事。如果有人遇到了,也好有个参考。

文件里前面写上:

os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'
req.content_type='text/xml'
req.charset = 'utf-8'
req.send_http_header()

下面再写req.write(string)就是你的页面格式,编码和页面都正确。



如果是html,则第二行写成 req.content_type='text/html'   即可。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP