zoukankan      html  css  js  c++  java
  • iconv_open() 出现 Invalid argument 错误的解决方法

    需要字符库的支持:

    转载:https://www.cnblogs.com/JonnyLulu/archive/2013/07/22/3170118.html

    iconv相关文件

    在PC机上使用iconv一般都会正常,但是一旦到了嵌入式linux中,往往会调用失败,这是因为缺少相关文件。libc只实现了接口iconv,

    但并没有实现具体的转换细节,可以想想,那么多的编码类型,如果都集成到libc库中,该是多么庞大!实际上转换细节使用动态链接库实现的。

    文件位于:

    /usr/lib/gconv

    再看具体文件:

    gconv-modules:指出了做相应转换应该调用的文件

    *.so:实现由内部编码到某种编码转换的动态链接库

    所以,为了支持UTF-16到GBK的转换,我们至少需要3个文件:

      UTF-16.so

      GBK.so

      gconv-modules

    其中gconv-modules应包含如下内容:

    # from to module cost
    module GBK//     INTERNAL    GBK 1
    module INTERNAL   GBK//      GBK 1

    # from to module cost
    module UTF-16//    INTERNAL   UTF-16 1
    module INTERNAL   UTF-16//    UTF-16 1

       那么这些文件从那里来呢,最方便的就是从编译器目录拷贝,例如CodeSourcery g++ Lite(某厂商提供的ARM GCC),对应默认指令集的库的

    路径是:

    arm-none-linux-gnueabi/libc/usr/lib/gconv

    是不是很方便,后面有时间再研究下如何自己编译这些动态链接库。。。

  • 相关阅读:
    协方差矩阵
    Adobe Photoshop CS6下载安装
    等差数列
    照片产尺寸
    移动立方体算法
    float与double的范围和精度
    C/C++运算符优先级
    通过 Windows API 获取鼠标位置等状态信息
    VC++ 获取鼠标状态,获取鼠标弹起消息
    python动态给对象或者类添加方法
  • 原文地址:https://www.cnblogs.com/cxt-janson/p/11452126.html
Copyright © 2011-2022 走看看