![]()
|
libjconvŠÖ”ƒŠƒtƒ@ƒŒƒ“ƒXint jconv_alloc_apply_iconv (iconv_t cd, const char *buffer, size_t len, char **buffer_r, size_t *len_r, size_t *error_pos_r);ˆø”cd‚ÅŽ¦‚³‚ê‚éiconvƒnƒ“ƒhƒ‹‚ð—˜—p‚µ‚ăR[ƒhƒZƒbƒg•ÏŠ·‚ðŽÀs‚µ‚Ü‚·Bˆø”buffer‚ɂ͕ϊ·Œ³‚̃oƒbƒtƒ@(nul•¶Žš‚ðŠÜ‚ñ‚Å‚¢‚Ä‚à‚æ‚Anul‚ÅI‚í‚Á‚Ä‚¢‚È‚‚Ä‚à\‚í‚È‚¢)‚ðŽw’肵Aˆø”len‚ɂ͕ϊ·Œ³‚̃oƒbƒtƒ@‚̃oƒCƒg”‚ðŽw’肵‚Ü‚·BƒR[ƒhƒZƒbƒg•ÏŠ·‚ÌŒ‹‰Ê‚Ímalloc‚É‚æ‚èƒq[ƒv‚©‚çŠm•Û‚³‚ꂽƒƒ‚ƒŠ—̈æ‚ÉŽû”[‚³‚êAˆø”buffer_r‚ÌŽw‚·æ‚Ö‚»‚̃ƒ‚ƒŠ—̈æ‚̃AƒhƒŒƒX‚ª‘ã“ü‚³‚ê‚Ü‚·B‚»‚̃ƒ‚ƒŠ—̈æ‚̃oƒCƒg”(•ÏŠ·Œ‹‰Ê‚̃oƒCƒg”)‚͈ø”len_r‚ÌŽw‚·æ‚Ö‘ã“ü‚³‚ê‚Ü‚·B‚æ‚Á‚ĕϊ·Œ‹‰Ê‚ÍAƒAƒhƒŒƒX*buffer_r‚©‚ç‚Ì*len_rƒoƒCƒg‚ÉŠi”[‚³‚ê‚Ä‚¢‚Ü‚·B•ÏŠ·Œ‹‰Ê‚Íí‚ÉI’[‚Énul•¶Žš‚ª‚‚¯‚ç‚ê‚Ü‚·B‚à‚µ•ÏŠ·‚ªŽ¸”s‚µ‚½ê‡‚ÍA•ÏŠ·Œ³ƒoƒbƒtƒ@’†‚̃Gƒ‰[”¶‰ÓŠ‚ÌƒIƒtƒZƒbƒg‚ªerror_pos_r‚ÌŽw‚·æ‚Ö‘ã“ü‚³‚êAŠÖ”‚Í0‚łȂ¢’l‚ð•Ô‚µ‚Ü‚·B‚æ‚Á‚Äbuffer + *error_pos_r‚ªƒGƒ‰[”¶‰ÓŠ‚É‚È‚è‚Ü‚·B•ÏŠ·‚ª¬Œ÷‚µ‚½ê‡‚Í‚±‚ÌŠÖ”‚Í0‚ð•Ô‚µ‚Ü‚·BƒGƒ‰[‚ª”¶‚µ‚½ê‡‚Å‚à“r’†‚܂ł̕ϊ·Œ‹‰Ê‚ª*buffer_r‚É‘‚«ž‚Ü‚ê‚邽‚ßA‚±‚ÌŠÖ”‚ªƒGƒ‰[‚ɂȂÁ‚½‚©”Û‚©‚É‚©‚©‚í‚炸*buffer_r‚ªNULL‚łȂ¢ê‡‚̓†[ƒU‚ªfree‚µ‚È‚¯‚ê‚΂Ȃè‚Ü‚¹‚ñB ‚à‚µ•ÏŠ·æ‚̃R[ƒhƒZƒbƒg‚ªƒXƒe[ƒgƒtƒ‹‚È‚à‚̂ł ‚Á‚½ê‡‚ÍA‚±‚ÌŠÖ”‚Å“¾‚ç‚ê‚é•ÏŠ·æ‚̃oƒbƒtƒ@‚É‚Í(•K—v‚È‚ç)ƒŠƒZƒbƒgƒV[ƒPƒ“ƒX‚ª‘‚«‚±‚Ü‚êAƒoƒbƒtƒ@‚Ì––‚Å‚Íí‚ɉŠúƒXƒe[ƒg‚ɂȂè‚Ü‚·B‚½‚Æ‚¦‚Εϊ·æ‚̃R[ƒhƒZƒbƒg‚ªISO-2022-JP‚Ìê‡A•ÏŠ·Œ³ƒoƒbƒtƒ@‚ÌÅŒã‚Ì•¶Žš‚ªJIS-X-0208•¶ŽšW‡‚Ì‚à‚̂ł ‚Á‚Ä‚àA•ÏŠ·æ‚̃oƒbƒtƒ@‚ÌÅŒã‚É‚ÍASCII‚É–ß‚·ƒV[ƒPƒ“ƒX‚ª‘‚«‚±‚Ü‚ê‚Ü‚·B‚±‚ÌŠÖ”‚ªŽ¸”s‚µ‚½ê‡AŠÖ”‚Í0‚łȂ¢’l‚ð•Ô‚µ‚Ü‚·B”¶‚µ‚½ƒGƒ‰[‚ÌŽí—Þ‚Íerrno•Ï”‚ł͂ȂAŠÖ”‚̕Ԃè’l‚Å”»•Ê‚µ‚Ü‚·B‹N‚±‚肤‚éƒGƒ‰[‚ÍŽŸ‚̂Ƃ¨‚è‚Å‚·B
int jconv_alloc_conv (const char *src, size_t src_len, char **dest_r, size_t *dest_len_r, const char *const *src_codesets, int num_src_codesets, int *actual_codeset_r, const char *dest_codeset);src‚Æsrc_len‚ÅŽ¦‚³‚ê‚éƒoƒbƒtƒ@‚̃R[ƒhƒZƒbƒg‚ð•ÏŠ·‚µAŒ‹‰Ê‚ð*dest_r‚Æ*dest_len_r‚ÉŠi”[‚µ‚Ü‚·B*dest_r‚̓q[ƒv‚©‚çŠm•Û‚³‚ê‚Ü‚·Bsrc_codesets‚Ænum_src_codesets‚ŕϊ·Œ³ƒR[ƒhƒZƒbƒg‚ÌŒó•â‚ðŽw’肵Adest_codeset‚ɂ͕ϊ·æƒR[ƒhƒZƒbƒg‚ðŽw’肵‚Ü‚·Bsrc‚Æsrc_len‚ÅŽ¦‚³‚ê‚éƒoƒbƒtƒ@‚ªsrc_codesets‚Ì’†‚Ì‚¢‚¸‚ê‚©‚̃R[ƒhƒZƒbƒg‚Æ‚µ‚ij‚µ‚¢‚à‚̂ł ‚ê‚΂±‚ÌŠÖ”‚Í0‚ð•Ô‚µA*actual_codeset_r‚É‚Ísrc_codesets’†“K‡‚µ‚½ƒR[ƒhƒZƒbƒg‚̔Ԇ‚ªƒZƒbƒg‚³‚ê‚Ü‚·B‚¢‚¸‚ê‚̃R[ƒhƒZƒbƒg‚É‚à“K‡‚µ‚È‚©‚Á‚½ê‡‚Í0ˆÈŠO‚Ì’l‚ð•Ô‚µ‚Ü‚·B‹N‚±‚肤‚éƒGƒ‰[‚ÍŽŸ‚̂Ƃ¨‚è‚Å‚·B
int jconv_alloc_conv_autodetect (const char *src, size_t src_len, char **dest_r, size_t *dest_len_r, const char *const *src_codesets, int num_src_codesets, int *actual_codeset_r, const char *dest_codeset);‚±‚ÌŠÖ”‚͂قƂñ‚Çjconv_alloc_conv‚Æ“¯‚¶“®ì‚ð‚µ‚Ü‚·‚ªAdest_codeset‚ÉNULL‚ð‹–‚·‚Ì‚ÆAnum_src_codesets‚É0‚ð‹–‚·“_‚¾‚¯‚ªˆÙ‚È‚è‚Ü‚·Bdest_codeset‚ªNULL‚ÌꇂÍAjconv_info_get_current_codesetŠÖ”‚̕Ԃ·’l‚ðŽw’肵‚½‚̂Ɠ¯‚¶‚±‚ƂɂȂè‚Ü‚·Bnum_src_codesets‚ª0‚ÌꇂÍAsrc_codesets‚Ænum_src_codesets‚Éjconv_info_get_pref_codesetsŠÖ”‚Å“¾‚ç‚ê‚éƒR[ƒhƒZƒbƒg‚ÌƒŠƒXƒg‚ðŽw’肵‚½‚̂Ɠ¯‚¶‚±‚ƂɂȂè‚Ü‚·B char * jconv_strdup_conv_autodetect (const char *src, const char *dest_codeset, const char *src_codeset, ...);‚±‚ÌŠÖ”‚Íjconv_alloc_conv_autodetect‚Ƃقړ¯“™‚Ì‹@”\‚ðŽ‚¿‚Ü‚·‚ªAˆµ‚¤ƒoƒbƒtƒ@‚ªí‚É•¶Žš—ñ(nul‚ÅI—¹‚·‚邿‚¤‚ȃoƒCƒg—ñ‚ւ̃|ƒCƒ“ƒ^)‚Å‚ ‚é“_‚ªˆÙ‚È‚è‚Ü‚·B‚±‚ÌŠÖ”‚̓R[ƒhƒZƒbƒg•ÏŠ·‚ª¬Œ÷‚·‚邯ƒq[ƒv‚©‚çŠm•Û‚³‚ꂽ•¶Žš—ñ‚ð•Ô‚µAƒR[ƒhƒZƒbƒg•ÏŠ·‚ÉŽ¸”s‚·‚邯strdup(src)‚ð•Ô‚µ‚Ü‚·Bƒq[ƒvƒƒ‚ƒŠ‚ª•s‘«‚µ‚½ê‡‚ÍNULL‚ð•Ô‚µ‚Ü‚·B•ÏŠ·Œ³ƒR[ƒhƒZƒbƒg‚͉•ϒ·ˆø”‚ðŽg‚Á‚ÄŽw’肵‚Ü‚·B‚±‚ÌŠÖ”‚Ö‚ÌÅŒã‚̈ø”‚Í•K‚¸NULL‚łȂ‚Ă͂Ȃè‚Ü‚¹‚ñB‚±‚ÌŠÖ”‚ÍnulI’[•¶Žš—ñ‚ð‘ÎÛ‚Æ‚µ‚Ä‚¢‚邽‚ßAnul•¶Žš‚ðŠÜ‚Þ‚±‚Æ‚ª‚ ‚éƒR[ƒhƒZƒbƒg(UCS2‚È‚ÇBŒµ–§‚É‚ÍUTF8‚ànul•¶Žš‚ðŠÜ‚Þ‚±‚Æ‚ª‚ ‚é)‚͕ϊ·Œ³‚â•ÏŠ·æ‚̃R[ƒhƒZƒbƒg‚Æ‚µ‚Ä—˜—p‚Å‚«‚Ü‚¹‚ñB‚Ü‚½ƒGƒ‰[‚ª”¶‚µ‚Ä‚àŒ´ˆö‚ð’m‚é•û–@‚ª‚ ‚è‚Ü‚¹‚ñB char * jconv_strdup_conv_fullauto (const char *src);‚±‚ÌŠÖ”‚Íjconv_strdup_conv_autodetect(src, NULL, NULL)‚Æ“¯“™‚Å‚·B char * convert_kanji_auto (const char *src);‚±‚ÌŠÖ”‚Íjconv_strdup_conv_fullauto(src)‚Æ“¯“™‚Å‚·BŒÃ‚¢ƒo[ƒWƒ‡ƒ“‚Ƃ̌݊·«‚Ì‚½‚߂Ɏc‚µ‚Ä‚ ‚è‚Ü‚·B char * convert_kanji (const char *src, const char *dest_codeset);‚±‚ÌŠÖ”‚Íjconv_strdup_conv_autodetect(src, dest_codeset, NULL)‚Æ“¯“™‚Å‚·BŒÃ‚¢ƒo[ƒWƒ‡ƒ“‚Ƃ̌݊·«‚Ì‚½‚߂Ɏc‚µ‚Ä‚ ‚è‚Ü‚·B char * convert_kanji_strict (const char *src, const char *dest_codeset, const char *src_codeset);‚±‚ÌŠÖ”‚Íjconv_strdup_conv_autodetect(src, dest_codeset, src_codeset, NULL)‚Æ“¯“™‚Å‚·BŒÃ‚¢ƒo[ƒWƒ‡ƒ“‚Ƃ̌݊·«‚Ì‚½‚߂Ɏc‚µ‚Ä‚ ‚è‚Ü‚·B void jconv_info_init (const char *conffile);‚±‚ÌŠÖ”‚Íjconv_info_get_current_codeset‚âjconv_info_get_pref_codesets‚ª•Ô‚·ƒe[ƒuƒ‹‚ð‰Šú‰»‚µ‚Ü‚·Bƒe[ƒuƒ‹‚̃f[ƒ^‚Íconffile‚ÅŽ¦‚³‚ê‚éƒtƒ@ƒCƒ‹‚©‚ç“ǂݎæ‚ç‚êAŒ»Ý‚̃ƒJ[ƒ‹(setlocale‚Åݒ肳‚ꂽƒƒJ[ƒ‹)‚É‚µ‚½‚ª‚Á‚Äjconv_info_get_current_codeset‚âjconv_info_get_pref_codesets‚̕Ԃ·‚ׂ«’l‚ªƒZƒbƒg‚³‚ê‚Ü‚·B‚æ‚Á‚Ä‚±‚ÌŠÖ”‚Ísetlocale‚ŃƒJ[ƒ‹‚ðݒ肵‚½Œã‚ɌĂÑo‚·‚ׂ«‚Å‚·Bconffile‚ªNULL‚ÌꇂÍ/etc/libjconv/default.conf‚ªŽw’肳‚ꂽ‚̂Ɠ¯‚¶‚±‚ƂɂȂè‚Ü‚·B‚±‚ÌŠÖ”‚̓}ƒ‹ƒ`ƒXƒŒƒbƒhƒZ[ƒt‚ł͂ ‚è‚Ü‚¹‚ñBlibjconv‚̃R[ƒhƒZƒbƒg•ÏŠ·ŠÖ”(jconv_alloc_conv_autodetect‚È‚Ç)‚ÍA‚à‚µjconv_info_init‚ª‚Ü‚¾ŽÀs‚³‚ê‚Ä‚¢‚È‚¢‚È‚çAjconv_info_init(NULL)‚ð“à•”‚ňÖق̂¤‚¿‚ɌĂÑo‚µ‚ăe[ƒuƒ‹‚ð‰Šú‰»‚µ‚Ü‚·B‚à‚µ‚ ‚ç‚©‚¶‚ßjconv_info_init‚𖾎¦“I‚ɌĂñ‚Å‚¢‚ê‚ÎAjconv_alloc_conv_autodetect‚Ȃǂ̃R[ƒhƒZƒbƒg•ÏŠ·ŠÖ”‚Í‘S‚ă}ƒ‹ƒ`ƒXƒŒƒbƒhƒZ[ƒt‚ɂȂè‚Ü‚·B‚È‚¨jconv_alloc_apply_iconv‚Æjconv_alloc_conv‚Íjconv_info_get_current_codeset‚âjconv_info_get_pref_codsets‚ð—˜—p‚µ‚È‚¢‚½‚ßí‚Ƀ}ƒ‹ƒ`ƒXƒŒƒbƒhƒZ[ƒt‚Å‚·B const char * jconv_info_get_current_codeset (void);Œ»Ý‚̃ƒJ[ƒ‹‚̃}ƒ‹ƒ`ƒoƒCƒg•¶Žš—ñ‚̃R[ƒhƒZƒbƒg‚Ì–¼‘O‚ð•Ô‚µ‚Ü‚·B const char *const * jconv_info_get_pref_codesets (int *num_codesets_r);Œ»Ý‚̃ƒJ[ƒ‹‚ÆŠÖŒW‚Ì[‚¢ƒR[ƒhƒZƒbƒg‚ÌƒŠƒXƒg‚ð•Ô‚µ‚Ü‚·B•Ô‚³‚ê‚éƒR[ƒhƒZƒbƒg‚̌”‚ª*num_codesets_r‚ɃZƒbƒg‚³‚ê‚Ü‚·B Akira Higuchi |