C 如何将字符*转换为UTF-8编码的字符*?

C 如何将字符*转换为UTF-8编码的字符*?,c,linux,macos,unix,utf-8,C,Linux,Macos,Unix,Utf 8,在Windows下,我使用MultiByteToWideChar(CP_ACP,…)和WideCharToMultiByte(CP_UTF8,…)进行转换 在OSX和Linux下如何做同样的事情?我尝试了mbstowcs/wcstombs,但得到的字符*不是UTF-8。查看。这就是你想要的api。您需要-liconv查看。这就是你想要的api。您将需要-liconv实际上我是这样做的,但我不知道如何使用此API以及我必须链接到的库。你有一个例子吗?好的,我如何知道用户当前拥有的输入编码(本例中的

在Windows下,我使用MultiByteToWideChar(CP_ACP,…)和WideCharToMultiByte(CP_UTF8,…)进行转换


在OSX和Linux下如何做同样的事情?我尝试了mbstowcs/wcstombs,但得到的字符*不是UTF-8。

查看。这就是你想要的api。您需要
-liconv

查看。这就是你想要的api。您将需要
-liconv

实际上我是这样做的,但我不知道如何使用此API以及我必须链接到的库。你有一个例子吗?好的,我如何知道用户当前拥有的输入编码(本例中的变量EUCSET)?@nefch你必须知道。你猜不到。根据输入来自何处,您可能能够找到,但如果您的来源没有告诉您,那么您需要在其他地方定义它。@nefch:如果您正在寻找与Windows CP_ACP(用户默认的ANSI代码页)等效的版本,那么在OS X和大多数现代linux发行版上,它总是UTF-8,因此,没有转换要做。如果输入数据不在用户的默认代码页中,那么您将遇到与Windows相同的问题…实际上我遇到了,但我不了解如何使用此API以及必须链接到的库。你有一个例子吗?好的,我如何知道用户当前拥有的输入编码(本例中的变量EUCSET)?@nefch你必须知道。你猜不到。根据输入来自何处,您可能能够找到,但如果您的来源没有告诉您,那么您需要在其他地方定义它。@nefch:如果您正在寻找与Windows CP_ACP(用户默认的ANSI代码页)等效的版本,那么在OS X和大多数现代linux发行版上,它总是UTF-8,因此,没有转换要做。如果输入数据不在用户的默认代码页中,则会遇到与Windows相同的问题…