Python 如何在C中将字符串编码更改为utf 8

Python 如何在C中将字符串编码更改为utf 8,python,c,encoding,Python,C,Encoding,如何将字符串的字符编码更改为UTF-8?我对一个python程序进行了一些execv调用,但python返回的字符串中有一些字符被截断。我不知道这是python问题还是c问题,但我认为如果我可以更改c中的字符串编码,然后将其传递给python,应该可以做到这一点。那我该怎么做呢 谢谢。在C语言中没有字符编码 char*可以保存任何数据,如何解释字符取决于您。例如,printf通常会将字符按原样转储到标准输出,如果您的控制台将这些字符解释为UFT8,它们将按原样显示 如果您想在C端的不同编码之间进

如何将字符串的字符编码更改为UTF-8?我对一个python程序进行了一些execv调用,但python返回的字符串中有一些字符被截断。我不知道这是python问题还是c问题,但我认为如果我可以更改c中的字符串编码,然后将其传递给python,应该可以做到这一点。那我该怎么做呢


谢谢。

在C语言中没有字符编码

char*
可以保存任何数据,如何解释字符取决于您。例如,
printf
通常会将字符按原样转储到标准输出,如果您的控制台将这些字符解释为UFT8,它们将按原样显示

如果您想在C端的不同编码之间进行转换,可以查看


如果您想在Python端的编码之间进行转换,请查看。

C中没有字符编码

char*
可以保存任何数据,如何解释字符取决于您。例如,
printf
通常会将字符按原样转储到标准输出,如果您的控制台将这些字符解释为UFT8,它们将按原样显示

如果您想在C端的不同编码之间进行转换,可以查看


如果您想在Python端的编码之间进行转换,请查看。

C,因为语言不利于字符串编码。C字符串只是一个以null结尾的字符序列(在大多数系统中是8位有符号整数)

宽字符串(具有
wchar\u t
类型的字符,通常为16位整数)也可用于保存较大的字符值;然而,同样,C标准库函数和数据类型完全不知道字符串编码的任何概念

问题的答案是确保传递到Python中的字符串编码为UTF-8


但是,为了帮助您以任何详细的方式实现这一点,您必须提供有关字符串当前是如何形成的、它们包含的内容以及如何为exec构建参数列表的更多信息。

C作为一种语言不利于字符串编码。C字符串只是一个以null结尾的字符序列(在大多数系统中是8位有符号整数)

宽字符串(具有
wchar\u t
类型的字符,通常为16位整数)也可用于保存较大的字符值;然而,同样,C标准库函数和数据类型完全不知道字符串编码的任何概念

问题的答案是确保传递到Python中的字符串编码为UTF-8


但是,为了帮助您以任何详细的方式完成这一任务,您必须提供有关字符串当前是如何形成的、它们包含的内容以及如何为exec构建参数列表的更多信息。

向我们展示一些代码,并告诉我们您是使用Python 2还是Python 3。如何取回这些字符串?您是否尝试按照此处所述从python转换它们:。还有,您正在运行什么平台,以及您使用什么打印字符串?向我们展示一些代码,并告诉我们您是使用Python 2还是Python 3。如何取回这些字符串?您是否尝试按照此处所述从python转换它们:。另外,您运行的是什么平台,您使用什么打印字符串?@nightcracker:技术上这是实现定义的。@nightcracker:技术上这是实现定义的。