zoukankan      html  css  js  c++  java
  • libiconv GNU Project Free Software Foundation (FSF)

    libiconv - GNU Project - Free Software Foundation (FSF)

    libiconv

     [image of the Head of a GNU] Introduction | Get the Software

    Introduction to libiconv

    For historical reasons, international text is often encoded using a language or country dependent character encoding. With the advent of the internet and the frequent exchange of text across countries - even the viewing of a web page from a foreign country is a "text exchange" in this context -, conversions between these encodings have become important. They have also become a problem, because many characters which are present in one encoding are absent in many other encodings. To solve this mess, the Unicode encoding has been created. It is a super-encoding of all others and is therefore the default encoding for new text formats like XML.

    Still, many computers still operate in locale with a traditional (limited) character encoding. Some programs, like mailers and web browsers, must be able to convert between a given text encoding and the user's encoding. Other programs internally store strings in Unicode, to facilitate internal processing, and need to convert between internal string representation (Unicode) and external string representation (a traditional encoding) when they are doing I/O. GNU libiconv is a conversion library for both kinds of applications.

    Details

    This library provides an iconv() implementation, for use on systems which don't have one, or whose implementation cannot convert from/to Unicode.

    It provides support for the encodings:

    European languages
    ASCII, ISO-8859-{1,2,3,4,5,7,9,10,13,14,15,16}, KOI8-R, KOI8-U, KOI8-RU, CP{1250,1251,1252,1253,1254,1257}, CP{850,866,1131}, Mac{Roman,CentralEurope,Iceland,Croatian,Romania}, Mac{Cyrillic,Ukraine,Greek,Turkish}, Macintosh
    Semitic languages
    ISO-8859-{6,8}, CP{1255,1256}, CP862, Mac{Hebrew,Arabic}
    Japanese
    EUC-JP, SHIFT_JIS, CP932, ISO-2022-JP, ISO-2022-JP-2, ISO-2022-JP-1
    Chinese
    EUC-CN, HZ, GBK, CP936, GB18030, EUC-TW, BIG5, CP950, BIG5-HKSCS, BIG5-HKSCS:2004, BIG5-HKSCS:2001, BIG5-HKSCS:1999, ISO-2022-CN, ISO-2022-CN-EXT
    Korean
    EUC-KR, CP949, ISO-2022-KR, JOHAB
    Armenian
    ARMSCII-8
    Georgian
    Georgian-Academy, Georgian-PS
    Tajik
    KOI8-T
    Kazakh
    PT154, RK1048
    Thai
    ISO-8859-11, TIS-620, CP874, MacThai
    Laotian
    MuleLao-1, CP1133
    Vietnamese
    VISCII, TCVN, CP1258
    Platform specifics
    HP-ROMAN8, NEXTSTEP
    Full Unicode
    UTF-8
    UCS-2, UCS-2BE, UCS-2LE
    UCS-4, UCS-4BE, UCS-4LE
    UTF-16, UTF-16BE, UTF-16LE
    UTF-32, UTF-32BE, UTF-32LE
    UTF-7
    C99, JAVA
    Full Unicode, in terms of uint16_t or uint32_t (with machine dependent endianness and alignment)
    UCS-2-INTERNAL, UCS-4-INTERNAL
    Locale dependent, in terms of `char' or `wchar_t' (with machine dependent endianness and alignment, and with OS and locale dependent semantics)
    char, wchar_t
    The empty encoding name "" is equivalent to "char": it denotes the locale dependent character encoding.
    When configured with the option --enable-extra-encodings, it also provides support for a few extra encodings:
    European languages
    CP{437,737,775,852,853,855,857,858,860,861,863,865,869,1125}
    Semitic languages
    CP864
    Japanese
    EUC-JISX0213, Shift_JISX0213, ISO-2022-JP-3
    Chinese
    BIG5-2003 (experimental)
    Turkmen
    TDS565
    Platform specifics
    ATARIST, RISCOS-LATIN1
    It can convert from any of these encodings to any other, through Unicode conversion.

    It has also some limited support for transliteration, i.e. when a character cannot be represented in the target character set, it can be approximated through one or several similarly looking characters. Transliteration is activated when "//TRANSLIT" is appended to the target encoding name.

    libiconv is for you if your application needs to support multiple character encodings, but that support lacks from your system.

    Installation

    As usual for GNU packages:
    $ ./configure --prefix=/usr/local
    $ make
    $ make install
    

    After installing GNU libiconv for the first time, it is recommended to recompile and reinstall GNU gettext, so that it can take advantage of libiconv.

    On systems other than GNU/Linux, the iconv program will be internationalized only if GNU gettext has been built and installed before GNU libiconv. This means that the first time GNU libiconv is installed, we have a circular dependency between the GNU libiconv and GNU gettext packages, which can be resolved by building and installing either

    • first libiconv, then gettext, then libiconv again,
    or (on systems supporting shared libraries, excluding AIX)
    • first gettext, then libiconv, then gettext again.
    Recall that before building a package for the second time, you need to erase the traces of the first build by running "make distclean".

    This library can be built and installed in two variants:

    • The library mode. This works on all systems, and uses a library libiconv.so and a header file <iconv.h>. (Both are installed through "make install".)

      To use it, simply #include <iconv.h> and use the functions.

      To use it in an autoconfiguring package:

      • If you don't use automake, append m4/iconv.m4 to your aclocal.m4 file.
      • If you do use automake, add m4/iconv.m4 to your m4 macro repository.
      • Add to the link command line of libraries and executables that use the functions the placeholder @LIBICONV@ (or, if using libtool for the link, @LTLIBICONV@). If you use automake, the right place for these additions are the *_LDADD variables.
      Note that iconv.m4 is also part of the GNU gettext package, which installs it in /usr/local/share/aclocal/iconv.m4.
    • The libc plug/override mode. This works on GNU/Linux, Solaris and OSF/1 systems only. It is a way to get good iconv support without having glibc-2.1. It installs a library preloadable_libiconv.so. This library can be used with LD_PRELOAD, to override the iconv* functions present in the C library.
      • On GNU/Linux and Solaris:
        $ export LD_PRELOAD=/usr/local/lib/preloadable_libiconv.so
      • On OSF/1:
        $ export _RLD_LIST=/usr/local/lib/preloadable_libiconv.so:DEFAULT
      A program's source need not be modified, the program need not even be recompiled. Just set the LD_PRELOAD environment variable, that's it!

    Copyright

    The libiconv and libcharset libraries and their header files are under LGPL.

    The iconv program is under GPL.

    Downloading libiconv

    libiconv can be found on in the subdirectory /pub/gnu/libiconv/ on your favorite GNU mirror. For other ways to obtain libiconv, please read How to get GNU Software.

    The latest release is http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz

    The latest development sources can be obtained through the savannah project.

    Documentation

    Below are the links for the online documentation.
    The iconv program
    iconv.1.html
    The library functions
    iconv_open.3.html
    iconv.3.html
    iconv_close.3.html
    iconvctl.3.html
    iconv_open_into.3.html

    Bug reports

    Bug reports should be sent to <bug-gnu-libiconv-antispam@antispam.gnu.org>.
    Return to GNU's home page.

    Please send general FSF & GNU inquiries to <gnu@gnu.org>. There are also other ways to contact the FSF.
    Please send broken links and other corrections or suggestions to <bug-gnu-libiconv-antispam@antispam.gnu.org>.

    Copyright (C) 1998, 2010 Free Software Foundation, Inc.

    Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.

    Last updated: $Date: 2011/08/07 18:23:36 $ $Author: haible $

  • 相关阅读:
    字符串加密
    接口实例
    RecyclerView添加Hearder
    基于Vue实现图片在指定区域内移动
    Tinymce 编辑器添加自定义图片管理插件
    LocalStorage和sessionStorage之间的区别
    javascript之url转义escape()、encodeURI()和decodeURI(),ifram父子传参参数有中文时出现乱码
    Js实现简单的音频播放
    通用CSS命名规范
    Hbuilder常用功能汇总
  • 原文地址:https://www.cnblogs.com/lexus/p/2834448.html
Copyright © 2011-2022 走看看