static void KBuffer_convertCharset(KonohaContext *kctx, KBuffer* wb, const char *targetCharset, const char *sourceCharset, const char *sourceBuf, size_t sourceSize, KTraceInfo *trace) { uintptr_t conv = I18NAPI iconv_open_i(kctx, targetCharset, sourceCharset, trace); if(conv != ICONV_NULL) { KLIB KBuffer_iconv(kctx, wb, conv, sourceBuf, sourceSize, trace); I18NAPI iconv_close_i(kctx, conv); } }
//## void setWriterCharset(String charset); static KMETHOD File_SetWriterCharset(KonohaContext *kctx, KonohaStack *sfp) { kFile *file = sfp[0].asFile; KMakeTrace(trace, sfp); file->writerIconv = I18NAPI iconv_open_i(kctx, kString_text(sfp[1].asString), "UTF-8", trace); }
static uintptr_t I18N_iconvUTF8ToSystemCharset(KonohaContext *kctx, KTraceInfo *trace) { return I18NAPI iconv_open_i(kctx, I18NAPI systemCharset, "UTF-8", trace); }