solaris 开发记录系列一--iconv支持

一、iconv
系统自带的iconv支持库功能较差,编码支持不全,会导致很多中文图形界面的程序显示有问题。
检测方法:
$iconv-f gb2312 -t utf-32(LE、BE) filename
如果轮换成功,说明已经ok了。
标准系统是不支持的,提示:
Not supported gb2312 toutf-32.

解决方案:使用libiconv
编译、安装,建议直接安装到/usr/local目录下,系统默认的不影响,需要使用的时候将/usr/local/bin加至PATH即可。 安装好后,让应用自己选择。

$ ./configure (--prefix=/usr/local 默认就是/usr/local)
$ make
$ make install
$ ln-s /usr/local/lib/libiconv* /usr/lib/

验证:
系统自带iconv:
$ /bin/iconv -f gb2312 -t utf-32lib.txt 
Not supported gb2312 to utf-32
libiconv的iconv:
$ /usr/local/bin/iconv -f gb2312 -t utf-32 lib.txt 
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

官方推荐:On GNU/Linux and Solaris:
$ export LD_PRELOAD=/usr/local/lib/preloadable_libiconv.so
但是个人感觉,最好不要使用此方法:
一,不是所有的程序都使用conv转换,就是需要转换,大部分编码也支持,影响系统性能;
二,常常有异常

当然这个只是解决问题的方案,看起来灰常简单,但是发现这个问题的过程还是十分艰辛的,分析问题、解决问题,就是最大的乐趣!
iconv解决,可以正常处理gb2312等中文编码,可以进行后面的工作了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值