我正在使用使用jython2.5.2的sikuli(请参阅sikuli.org)。
这是Java级别的类区域的摘要:
public class Region {
// < other class methods >
public int type(String text) {
System.out.println("javadebug: "+text); // debug output
// do actual typing
}
}
在Pythonlevel上有一个包装纸:
import Region as JRegion // import java class
class Region(JRegion):
# < other class methods >
def type(self, text):
print "pythondebug: "+text // debug output
JRegion.type(self, text)
这是针对ASCII Chars的工作,但是当我将Ö,ä或ü用作文本时,这会发生:
// python input:
# -*- encoding: utf-8 -*-
someregion = Region()
someregion.type("ä")
// output:
pythondebug: ä
javadebug: ä
传递给Java对象时,角色似乎错误地转换了。
我想知道这里到底出了什么问题以及如何解决此问题,以便在Javamethod中输入的字符是相同的。感谢您的帮助
从您必须告诉java的jython代码中查看,字符串是UTF-8编码:
def type(self, text):
jtext = java.lang.String(text, "utf-8")
print "pythondebug: " + text // debug output
JRegion.type(self, jtext)