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 函数中文返回值乱码


    原文作者:游程编码问题
    原文地址: https://blog.csdn.net/qq_33775402/article/details/57503341
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞