apache cgi无法输出中文

隆回水哥 发布于 2017/02/07 16:55
阅读 250
收藏 0

安装apache,配置了apache的cgi,如下/var/www/conf/httpd.conf

ScriptAlias "/cgi-bin/" "/var/www/cgi-bin/"

<Directory "/var/www/cgi-bin">
    Require all granted
    Options +ExecCGI    
</Directory>

AddHandler cgi-script .cgi .pl  .py

写了一段python测试脚本,在服务器直接执行脚本没问题。通过浏览器访问,中文无法输出,只显示了"Hello Word"。

产生的错误如下:

Traceback (most recent call last):
  File "/var/www/cgi-bin/hello.py", line 15, in <module>
    print ('<h2>' + u'\u4e2d\u6587\u6d4b\u8bd5' + '</h2>')
UnicodeEncodeError: 'ascii' codec can't encode characters in position 4-7: ordinal not in range(128)

 

hello.py的代码如下

#!/usr/local/bin/python3
# -*- coding: utf-8 -*-


print ("Content-type:text/html;charset=utf-8")
print ()                             # 空行,告诉服务器结束头部
print ('<html>')
print ('<head>')
print ('<meta charset="utf-8">')
print ('<title>Hello Word</title>')
print ('</head>')
print ('<body>')
print ('<h2>Hello Word</h2>')
print ('<h2>中文测试</h2>')
print ('</body>')
print ('</html>')

经过多次尝试,未能解决这个编码问题.

 

加载中
0
mickelfeng
mickelfeng
sys.setdefaultencoding('utf8')
隆回水哥
隆回水哥
回复@mickelfeng : python3没有方法sys.setdefaultencoding()
0
小强_l669
小强_l669

楼主,这个问题有解决吗?我也遇到一毛一样的问题,如果有解决分享一下呗

返回顶部
顶部