python脚本乱码的解决方法

使用python2 在windows cmd 执行python脚本发生乱码的解决方法

  • 可以先把中文解码为unicode,然后再转化为gbk显示正常,需要在代码打印中文处添加
print(':这是一段中文字'.decode('utf-8').encode('gbk'))
复制代码
  • 另外可以使用改变CMD默认编码模式的方法
chcp 65001换成UTF-8代码页
chcp 936 换回默认的GBK


本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理

想要获取更多Python学习资料可以加
QQ:2955637827私聊
或加Q群630390733
大家一起来学习讨论吧!

### Java 调用 Python 脚本时的中文乱码解决方案 当Java程序调用Python脚本并处理含有中文字符的数据时,可能会遇到乱码问题。此现象通常源于不同环境之间的编码不一致。 #### 设置统一的UTF-8编码标准 为了确保数据传输过程中不会丢失任何特殊字符或汉字信息,建议在整个开发环境中强制实施UTF-8作为唯一的字符串表示方式: - **对于Python端**:可以在Python源文件的第一行加入`# -*- coding: utf-8 -*-`声明[^1]; - **针对Java侧**:启动JVM时指定参数 `-Dfile.encoding=UTF-8` 来覆盖系统的默认编码设置;另外,在读取外部资源(比如通过InputStreamReader)时也应显式指明采用UTF-8编码[^4]。 ```java // 创建带自定义编码格式的输入流读取器实例 InputStreamReader isr = new InputStreamReader(process.getInputStream(), StandardCharsets.UTF_8); ``` #### 修改Python打印行为以适应跨平台需求 由于Python内部使用的stdout/stderr管道可能具有不同的初始配置,默认情况下它们或许并不总是遵循预期的编码规则。因此有必要调整这些输出通道的行为模式,使之能够正确地发送经过适当编码转换后的字节序列给接收方——即这里的Java应用。 可以通过重定向sys.stdout对象至一个带有特定编码属性的新类实例来达成目的。具体做法如下所示[^2]: ```python import sys from io import TextIOWrapper, BytesIO class UTF8OutputWrapper(TextIOWrapper): def __init__(self, buffer): super().__init__( buffer, encoding='utf-8', errors='replace' ) if isinstance(sys.stdout.buffer, BytesIO): # 判断当前运行环境是否支持buffer属性访问 sys.stdout = UTF8OutputWrapper(sys.stdout.buffer) print('你好世界') # 测试语句 ``` 上述代码片段展示了如何构建一个新的TextIOWrapper子类,并将其应用于替换原有的sys.stdout对象,从而保证所有的控制台输出都将按照UTF-8格式进行编码。 #### 验证效果 完成以上更改之后,再次尝试让Java应用程序执行Python脚本,并观察最终得到的结果是否仍然存在乱码情况。如果一切正常,则说明已经成功解决了这个问题。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值