NDK项目怎么才能使用iconv

新手上路,请多包涵

最近本人的一个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
阅读 6.9k
2 个回答
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题