Android第十五課 Jni自帶的iconv庫不支持GBK轉碼

場景說明
    NDK環境下使用sqlite3存儲用戶數據,存儲的是UTF-8格式,讀取數據庫,轉換爲GBK顯示中文。
結論
    Android自帶的iconv庫不支持GBK轉碼,也不支持GBK2312的轉碼

測試步驟如下

使用Android自帶的iconv庫,引入該庫
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := mylib
LOCAL_SRC_FILES := mylib.cpp
LOCAL_WHOLE_STATIC_LIBRARIES += android_support
LOCAL_CXXFLAGS += -std=c++11 -fexceptions
include $(BUILD_SHARED_LIBRARY)
$(call import-module, android/support)
紅色的字體是需要添加的代碼
代碼段:
  errno = 0;
  iconv_t cd = iconv_open("GBK", "UTF-8");
  if (errno !=0)
  {
    LOGE("test", "err:%s", strerror(errno));
  }
使用Android自帶的iconv函數,出現如下的錯誤:errno:22  errinfo:Invalid argument
其中大小寫,還有GB2312等嘗試轉換,還是出現上面的問題,核心原因是Android自帶的庫不支持GBK的編碼轉換,


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章