C++ 调用 python 传入参数的编码问题

C++ 调用 python 传入参数的编码问题  

话说字符编码真是一个坑啊 ,同意的 随便评论个 666~~

问题:写一个项目,用python 调用XXX api接口 (接口要求传入的值必须是utf-8编码 )写一个函数  ,然后用c++程序再调用python 写好的函数。当把值从c++ 传如python时报错!

原因:vs编译器  在中文环境中是gbk编码   直接把gbk传进去  肯定错了   ヾ(×× ) ツ  

解决:在python 脚本中   将传进去的 gbk编码的参数转成 utf-8  。

import sys  
reload(sys) 
sys.setdefaultencoding("utf-8")   #当我们没有指明解码方式,python 就会使用  sys.setdefaultencoding() 指明的方式来   #解码
def youdao(text):       #传入的参数text为gbk编码
textx=text.decode('gbk').encode('utf-8')    #将gbk编码转utf-8 编码    

     .............

     return 


ps:为什么不在c++里转码?  

1. c++ 转码,我特么不会 ,网上的真心不靠谱。。有靠谱的方式 请评论 告我一下 

2.最重要的是应为python转码方便,而且python作为c++程序的扩展程序,还是适应主程序的编码方式好。假如你要调用python中的这个函数100次,总不会把c++中的参数在c++中转码100次再传给python函数吧    哈哈哈哈φ(゜▽゜*)♪


如果对返回值的处理有疑问,请移步我的另一篇文章 c++ 调用 python 函数中文返回值乱码



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值