jython+modjy在GoogleAppEngine上开发的几个小问题

也许是因为比较新或者应用范围有限,网上关于jython+modjy的资料实在少的很。再加上google appengine这个比较特殊的平台,甭说例子了,连点有用的文章都没有。我最近在GAE上用jython+modjy做了个小玩意,折腾了好几天,写这篇文章总结一下开发过程中遇到了几个小问题

1,在每个程序的第一行声明源文件的编码格式

不管是Jython还是Python,如果不做这个声明,不管你是否将文件存为了UTF-8格式或者其他什么格式,源文件将以默认的ASCII编码格式进行处理。这也是一些中文乱码出现的原因,所以,指定编码格式是个好习惯!以下这两种种方式都是正确的:

# coding=utf-8
# -*- coding: latin-1 -*-

更多格式可参考:http://www.python.org/dev/peps/pep-0263/

2,Unicode对象

与Python一样,在Jython内部是用Unicode来处理字符串的。经Jython做过处理的字符串,最终显示时均需要用unicode对象的encode()方法转换成相应编码方式进行显示,未进行操作过的硬编码除外。代码片段如下:

bs=”红梅”+”红河”    <==此时经过“+”操作,bs为unicode对象。
bs.encode(‘utf-8’) <==解码后可以utf-8编码方式显示。

3,获得get/post数据的方式

除了在jython内调用JAVA类的方式之外,可以用以下方法获得:

post = environ[‘j2ee.request’]
bs = post.getParameterValues(‘atom’)[0]

其中环境变量environ[‘j2ee.request’],其实是一个 org.mortbay.jetty.Request 对象

应该还有其他更简单的方式,不过我没找到。

jython+modjy在GoogleAppEngine上开发的几个小问题》有1个想法

  1. sonnylys

    我用modjy的modjy_webapp例子来测试,按你的方法尝试中文问题,程序还是抛错。怎样能联系到你?

    回复

发表评论

邮箱地址不会被公开。 必填项已用*标注