我正在尝试从Groovy脚本执行Python脚本:)
以下是我执行命令的方法:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
holder = new ViewHolder();
convertView = inflater.inflate(R.layout.recycler_view_item, parent, false);
holder.tvName = (TextView) convertView.findViewById(R.id.tvName);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.tvName.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Button was clicked
}
});
return convertView;
}
其中def cmd = """guessit -j "$tmp" """
String output = cmd.execute()
包含作为groovy脚本的参数传递的文件名。
如果有非ascii字符(我在$tmp
中有俄文字母),我会收到Unicode错误
$tmp
编码为UTF-8,'ascii' codec can't encode characters in position 11-16: ordinal not in range(128)
已设置
Python错误日志
-Dfile.encoding=UTF-8
Python源代码在https://github.com/wackou/guessit/blob/2.x/guessit/main.py
如果我从cmd调用此命令 - 没有错误。 操作系统是Windows 7.非Unicode的语言是俄语
怎么了?
答案 0 :(得分:1)
解决!
SET PYTHONIOENCODING=utf-8
设置stdin,stdout和stderr