让linux系统的开发板支持中文的两种方法

原文地址:让linux系统的开发板支持中文的两种方法 作者:teaco77

一、我实验过的一种方法:
如果是裸奔的系统,可以将汉字库以数组的形式存入ROM中或将二进制文件烧录在外存中,不会以文件的形式使用汉字库,但是对于使用了linux操作系统的开发环境来说,要使用汉字库,就直接可以读取二进制文件。

要在开发板的文件系统中安装iconv库:

第一步:执行如下命令

./configure CC=arm-linux-gcc --build=i686-pc-linux --target=arm-linux --host=arm-linux prefix=/usr/local/arm/4.3.2/arm-linux --enable-shared --enable-shared --enable-static

第二步:执行如下命令

make && make install

第三步:

cp /usr/local/arm/4.3.2/arm-linux/lib/libiconv.* /rootfs/lib

[root@localhost hznet]# make

arm-linux-gcc -o hznet hznet.c -liconv

/usr/local/arm/4.3.2/bin/…/lib/gcc/arm-none-linux-gnueabi/4.3.2/…/…/…/…/arm-none-linux-gnueabi/bin/ld: cannot find -liconv

collect2: ld returned 1 exit status

make: *** [hznet] Error 1

但是还是有以上错误

根据提示:

将编译生成的iconv库,也就是刚才复制到/rootfs/lib下的库,大概有10个文件,也复制到gcc的库目录下, /usr/local/arm/4.3.2/lib/gcc/arm-none-linux-gnueabi/4.3.2,这样就编译通过了。

实现的原理是utf-8转换成gb2312,然后得到机内码,有了机内码后就是和单片机同样的处理方式,通过汉字库显示汉字。

二、locale方式,我没试过,转自以下BK

http://blogold.chinaunix.net/u3/90973/showart_1976075.html

拷贝工具链里的i18n目录到/usr/share下;

在 /usr/lib/下建立一个locale目录,运行 localedef -f UTF-8 -i zh_CN zh_CN.UTF8命令。
就能在/usr/lib/locale下建立一个locale-archive文件。

用locale -a命令就能看到刚才加的文件名了。

删除掉添加的文件用: localedef --delete-from-archive zh_CN.UTF8

localedef命令是在模默认目录/usr/share/i18n下找字符集和locale定义文件的。

~# cp i18n /us r/share
~#mkdir -p /usr/lib/locale
~#localedef -f UTF-8 -i zh_CN zh_CN.UTF8
`#locale -a

之后,还得在板子的环境变量中添加 export LANG=zh_CN.utf

详细又如:
/scratchbox/compilers/arm-linux-gcc-3.4.4-glibc-2.3.5/arm-unknown-linux-gnu/share/i18n] > cd …/
[sbox-ms007: /scratchbox/compilers/arm-linux-gcc-3.4.4-glibc-2.3.5/arm-unknown-linux-gnu/share] > cp i18n/ /usr/share/ -raf
[sbox-ms007: /scratchbox/compilers/arm-linux-gcc-3.4.4-glibc-2.3.5/arm-unknown-linux-gnu/share] > cd /usr/local/
[sbox-ms007: /usr/local] > ls
[sbox-ms007: /usr/lib] > mkdir local
[sbox-ms007: /usr/lib] > mv local locale
[sbox-ms007: /usr/lib] > localedef -f UTF-8 -i zh_CN zh_CN.UTF
[sbox-ms007: /usr/lib] > cd locale/
[sbox-ms007: /usr/lib/locale] > ls
locale-archive
[sbox-ms007: /usr/lib/locale] > locale -a
C
POSIX
zh_CN.utf
[sbox-ms007: /usr/lib/locale] > ls
locale-archive
[sbox-ms007: /usr/lib/locale] >

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值