Linux 版 (精华区)

发信人: tcpip (偶的昵称改了), 信区: Linux
标  题: TurboLinux 4.02中文化初探(2)(转寄)
发信站: 哈工大紫丁香 (Sun Dec 26 12:10:05 1999), 转信

发信人: stable (xixi), 信区: Linux       

标  题: TurboLinux 4.02中文化初探(2)

发信站: BBS 水木清华站 (Sat Dec 25 22:32:39 1999)

2. 安装locale

   locale在中文化方面的作用极大, 但似乎没有引起足够的重视,

   TLC 4.02对 locale 的支持, 包括GBK/Big5 locale, 全面支持NLS

   及I18N.

   主要是localedata-zh-0.05-4.noarch.rpm, 将这个包装上,理论上

   就可以使用locale了.

   老于(yumj)(不是那个玉米糊,:P)写了个程序可以用来测试locale是否正常

#include <stdio.h>

#include <stdlib.h>

#include <locale.h>

char *string = "测试Locale的软件!";

void main()

{

    int i, l, length;

    char *ptr;

    char cbuf[128];

    wchar_t wcbuf[128];

    setlocale(LC_ALL, "");

    /* MB_CUR_MAX check */

    printf("MB_CUR_MAX %d\n", MB_CUR_MAX);

    length = strlen(string);

    printf("string %s, length %d\n", string, length);

    /* mbstowcs() */

    l = mbstowcs(wcbuf, string, 128);

    printf("mbstowcs() -> num %d,", l);

    for (i = 0; i < l; i++) {

 printf(" %x", wcbuf[i]);

    }

    printf("\n");

    /* wcstombs() */

    l = wcstombs(cbuf, wcbuf, 128);

    printf("wcstombs() -> length %d, %s\n", l, cbuf);

    /* mblen() check */

    for (ptr = string; *ptr; ) {

 l = mblen(ptr, length);

 mbtowc(wcbuf, ptr, length);

 printf("ptr %s, mblen %d, wchar %x\n", ptr, l, wcbuf[0]);

 if (l <= 0) {

     break;

 }

 ptr += l;

    }

}

//end

--

※ 来源:·BBS 水木清华站 smth.org·[FROM: 162.105.138.50]


--
☆ 来源:.哈工大紫丁香 bbs.hit.edu.cn.[FROM: bin@mtlab.hit.edu.cn]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.044毫秒