NDK项目怎么才能使用iconv

发布于 2022-09-07 20:36:03 字数 1077 浏览 30 评论 0

最近本人的一个ndk项目中出现了数据传输过程中编码不一致导致的乱码(我开发客户端,而服务端不归我管),因此打算使用iconv.h进行转换,但提示

./gui/renderware_imgui.cpp:116:15: error: use of undeclared identifier 'iconv_open'
        iconv_t cd = iconv_open(to_charset, source_charset);
                     ^
./gui/renderware_imgui.cpp:128:6: error: use of undeclared identifier 'iconv'
        if (iconv(cd, &inbuf, &inlen, &poutbuf,&outlen) == -1)
            ^
./gui/renderware_imgui.cpp:132:2: error: use of undeclared identifier 'iconv_close'

之后我打开了NDK r17b的iconv.h,发现了这个

#if __ANDROID_API__ >= 28
iconv_t iconv_open(const char* __src_encoding, const char* __dst_encoding) __INTRODUCED_IN(28);
size_t iconv(iconv_t __converter, char** __src_buf, size_t* __src_bytes_left, char** __dst_buf, size_t* __dst_bytes_left) __INTRODUCED_IN(28);
int iconv_close(iconv_t __converter) __INTRODUCED_IN(28);
#endif /* __ANDROID_API__ >= 28 */

本人的项目sdk api为14 他却要了28(Android 9),但我却不能要求也做不到让所有用户使用Android 9,请问该怎么解决。

NDK版本:r17b
SDK API:28

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

长梦不多时 2022-09-14 20:36:03

请问你解决了,我也遇到这个问题,想请教一下

还不是爱你 2022-09-14 20:36:03

请问你解决了吗,我也遇到这个问题

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文