Jython设置默认编码

Jython项目对非ascii编码的支持不是很好,尤其是在windows环境。

但是需要用Jython做一些和Java配合的工作,又必须要能够在Windows环境工作。经过一番研究终于发现两个可行的方法。

在Win7命令行直接运行Jython 2.7a2是不行的,因为Jython默认是ascii编码,而Win7默认是GBK编码,更加悲剧的是JVM又不支持在Console使用GBK.

一个简单的解决方法:

jython -C "utf-8"

看看默认编码:

>>> import sys
>>> sys.defaultencoding
'ascii'

注意虽然系统默认编码还是ascii,但是已经可以正常的使用Shell了。因为JVM的默认编码已经改过了来了。

然后再执行下面这段代码:

from org.python.core import codecs
codecs.setDefaultEncoding('utf-8')

或者:

import sys
reload(sys)
sys.setdefaultencoding('utf-8')

再检查下Jython的默认编码:

>>> sys.defaultencoding
'utf-8'

搞定。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Base58编码简介

    Base64是很多人熟知的一种编码。 在URL传输领域,还有类似的Base32编码。这个编码去掉了一些特殊字符,只留下了大写字母和数字。 本文要讨论的是Base...

    Linker
  • Jython动态加载Jar

    用Jython做单元测试Java项目的时候,需要能动态的从Jar包里load类。 以下是一个简单的方法: import sys sys.path+=["...

    Linker
  • 从设计上规避Go语言的 interface{} == nil 判断容易出错的简单办法

    Go语言的interface{} 本质上是一个结构,含有一个type字段,一个pointer字段。 很多初学者会拿一个已经在某种情况下被赋予类型的interfa...

    Linker
  • leetCode 77&39. Combinations & Combination Sum

    Given two integers n and k, return all possible combinations of k numbers out of...

    大学里的混子
  • 动动手——LeetCode题目14:最长公共前缀

    编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。

    二环宇少
  • 【从零开始学习Go语言】六.Go语言之数据类型标识符

    int为整形,取值范围根据系统决定,根据官方文档的定义是最小为32位,也就是x86架构或者x64/x86-64,关于架构的知识具体可自行百度

    一只特立独行的兔先生
  • 【从零开始学习Go语言】六.Go语言之数据类型标识符

    之前一章讲解了go的关键字,并且只有25个关键字,而这篇文章记录的是数据类型标识符,注意数据类型标识符也属于关键字(预声明标识符),不过25个关键字为定义go语...

    一只特立独行的兔先生
  • 任务调度框架Quartz原理简介

    Quartz是OpenSymphony开源组织的一个Java开源项目, 在2009被Terracotta收购。Quartz官网

    SmileNicky
  • 为传统行业提供新思路,“智享沙龙——硬科技赋能传统产业升级”即将开启 | 活动

    镁客网
  • 3. 死磕 k8s系列之安装k8s仪表盘(Dashboard)

    从读音还以为是国人发明的呢,其实不是。真正的原因是kubernetes太长了,老外也容易拼错,所以就省略了中间8个字母以 8 代替,就变成了k8s。

    彤哥

扫码关注云+社区

领取腾讯云代金券