c++ 调用 python 函数中文返回值乱码

本文介绍了C++调用Python函数时遇到的中文返回值乱码问题及其解决方法。问题在于Python返回的UTF-8编码字符在C++中被错误地解码为ASCII。解决办法是在Python端将字符串先编码为GBK,然后在C++端正确处理。注意在Python中使用GB18030编码可以避免部分字符丢失的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C++调用 python的方法就不说   网上不缺的就是这帖子  

如 :

http://www.cnblogs.com/allensun/archive/2011/02/04/1949090.html

http://www.jcwcn.com/article-30546-1.html

然而并都没什么卵用,没有确切的指出我们今天的这个问题该怎么解决。

问题:c++ 调用 python 函数中文返回值乱码


也是神奇了   我把一段utf-8 编码的字符传回c++ 程序 ,打印出来是乱码,而且这种乱码的原因是  把utf-8 编码的字符 解码成ascii码了 。so 我就把字符串各种转码,都是乱码的  。

解决:

在python 代码中 先把字符串 编码成 gbk 编码的,然后在传回c++ 程序  就不会乱码了 。我有句妈卖批不知当讲不当讲,这和ascii 乱码看起来没有关系啊啊。

我用的python 2.7 编码问题真心坑  

>>>>>>>>>>>>>>>>>>>>>>>>>>>>

python 转码方法  

Python 里面的编码和解码也就是 unicode 和 str 这两种形式的相互转化。编码是 unicode -> str,相反的,解码就 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值