红联Linux门户
Linux帮助

Redhat5.5中文乱码如何解决

发布时间:2014-01-09 15:46:43来源:红联作者:ewolfe
有一用curses写的程序,在redhat3下正常,拿到5下后有个汉字是乱码(目前发现这一个汉字,其它汉字正常)--"?"

将curses改为 ncursesw,程序中加入setlocale(),lib改为libncursew后,该汉字可以正常显示,但光标等不再好用。

现在想知道为什么3下,用户curses(不需要换ncursesw)即可以正常显示该汉字,在5下不行呢?


/etc/sysconfig/i18n也换过n种,求解求解求解求解求解求解
文章评论

共有 3 条评论

  1. ewolfe 于 2014-01-12 20:34:55发表:

    源码如下:

    #include
    #include

    main()
    {
    char *out3="为什么是乱码呢[?]\n";

    //setlocale(LC_ALL,"");
    initscr();
    cbreak();
    mvaddstr(10,10,out3);
    refresh();
    endwin();
    return 0;
    }
    ~
    编译语句: cc a.c -lncurses

    REDHAT AS3 下编译执行没有问题
    REDHAT enterprise linux 5 下编译则"?"字显示乱码

    如果设置setlocale,且curser的lib换为 -lncursesw则可以正常显示;但因为换为该lib后有大量修改,所以不想换,求乱码原因

  2. chushihua 于 2014-01-12 19:40:34发表:

    蛮有道理的

  3. numdon 于 2014-01-09 21:49:51发表:

    是编码的事