文档章节

[LINUX]利用Ncursesw编写支持中文的终端程序

姚思远
 姚思远
发布于 2013/12/06 11:14
字数 377
阅读 842
收藏 3
点赞 0
评论 0

1. Ncursesw库的安装与使用

Ncurses库的安装(Ubuntu):

查看相关软件包

sudo apt-cache search ncursesw

安装ncursew必须软件包

sudo apt-get install libncurses5 libncurses5-dbg libncurses5-dev
使用Ncursesw库时,需要包含头文件 ncurses.h,没错,头文件没有改变。相应地,相关函数的使用也没有改变。

然而,在编译源文件时,采用选项-lncursesw替代原用-lncurses。

2. 使程序支持中文字符

在调用initscr()函数前,需要首先调用setlocale(LC_ALL,"")设置终端环境。具体请参见

man 3 setlocale

在man page中,我们还可以知道,为了使用setlocale这个函数,需要包含头文件locale.h。

如果没有这个头文件,可尝试安装libicu-dev软件包。


演示:

#include <ncurses.h>
#include <locale.h>

int main(void)
{
  setlocale(LC_ALL,"");
  initscr();
  attron(A_BOLD);
  printw("成功支持中文字符");
  attroff(A_BOLD);
  refresh();
  getch();
  endwin();

  return 0;
}


2014.4.14补充:

在linux系统中,一般都要使用ncursesw库来实现中文输出。但是在Mac OS X中,只有ncurses库,利用上述代码同样可以输出中文。但是注意:无论使用那种情况,必须使用setlocale(LC_ALL,""),否则都有可能带来乱码!

© 著作权归作者所有

共有 人打赏支持
姚思远
粉丝 0
博文 8
码字总数 6347
作品 0
奉节
linux i18n修改,中文版英文版体现

对于国内的Linux用户,经常烦恼的一个问题是:系统常常在需要显示中文的时候却显示成了乱码,而由于某些原因,需要英文界面的系统的时候,却苦于系统 不能正常输入和显示中文.另外,由于大部分主要...

xiaot99
2014/02/07
0
0
linux i18n修改,中文版英文版体现

对于国内的Linux用户,经常烦恼的一个问题是:系统常常在需要显示中文的时候却显示成了乱码,而由于某些原因,需要英文界面的系统的时候,却苦于系统 不能正常输入和显示中文.另外,由于大部分主要...

lichao19881026
2014/05/16
0
0
iconv实现编码转换与中文点阵字库HZK16

嵌入式开发中中文的识别、显示一直是一个比较让人头疼的问题,这是由于嵌入式系统的精简要求所导致的。我在前一个项目中用Qt做终端的显示界面时,就被中文字符的显示搞得焦头烂额,最后还是在...

水海云
2013/02/28
0
0
将linux英文系统变成中文系统

linux安装中文支持 ----基于Red Hat Enterprise Linux Server release 6.4 (Santiago) 简介:按照如下修改后linux英文系统会变成中文系统 ps:其实我遇到的问题是终端显示中文乱码,一顿谷歌...

皮子喜欢打篮球
2015/07/31
0
2
Ubuntu 12.04中设置安装Google拼音输入法

写在最前 好久没写文章了,随着近期时间的充裕,肯定会加快会博文更新的速度。言归正传,在安装英文Linux系统后(作为开发来说,本人更倾向于安装英文语言环境的Linux系统,这样各种提示,尤...

鄂世嘉
2013/11/27
0
2
SSH客户端显示中文乱码问题的解决

问题描述: LINUX安装时候选择的是中文,SSH 连接LINUX,中文出现乱码 问题原因: 此种情况的乱码,一般都是终端和服务器编码不一致造成的,问题关键是搞清楚两者的编码格式,然后改成一致即可...

sfih
06/26
0
0
Tiny Core Linux 显示中文的方法

Tiny Core Linux的下载地址:   http://www.tinycorelinux.net/downloads.html   当前的版本为:4.7.5   每个人的需求都不一样,我选择 Tiny Core Linux 的原因很简单——因为体积小。...

银月光海
2015/07/27
0
0
从windows迁移到ubuntu

其实ubuntu对我来说并不陌生,因为工作原因我最早使用的ubuntu版本是9.4(当时还是我喜欢的经典桌面)。我个人是个务实主义者,windows还是有好多方便的地方,所以我工作中使用双系统。代码基...

张旭0512
2014/05/23
0
3
VIM查看中文编码文件显示为乱码的解决办法

修改你的.vimrc文件,让其支持 gb2312就行,会自动识别的。 可以参考我的设置 代码: "设定文件编码类型,彻底解决中文编码问题 let &termencoding=&encoding set fileencodings=utf-8,gbk,uc...

ldhshao
2013/06/17
0
0
配置 Ubuntu 字符界面启动

http://apps.hi.baidu.com/share/detail/33044520 http://www.cnblogs.com/chenwq/archive/2011/01/01/1923617.html 中提到RH/Fedora下sudo mv /etc/rcX.d/{K,S}xxgdm的方法已经不适用了。在......

AlphaJay
2011/07/26
0
1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

python以太坊类库web3.py概览

python通过web3.py库与以太坊交互共同入口是web3对象。web3对象提供API接口,python开发应用与以太坊进行交互如钱包创建、支付、转账等连接JSON-RPC服务器进行。 Providers提供者 Providers使...

智能合约
1分钟前
0
0
【Android学习笔记】设置App启动页

先将启动页放到项目资源中,图片一般是1080*1920的jpg。 新建一个activity,如图: 创建成功之后,打开刚刚创建的activity,来进行代码的编写: >>>阅读全文

全部原谅
2分钟前
0
0
什么是React-redux、为什么使用React-redux、怎么使用React-redux

1、什么是React-redux React-redux是用于连接React和Redux的 2、为什么使用React-redux 使用React-redux可以使redux部分代码更简洁更明了,比如组建中需要使用到的数据都在mapStateToProps方...

kimyeongnam
5分钟前
0
0
Spring核心——Stereotype组件与Bean扫描

在注解自动装载中介绍了通过注解(Annotation)自动向Bean中注入其他Bean的方法,本篇将介绍通过注解(Annotation)向容器添加Bean的方法。 Spring的核心容器提供了@Component和@Bean注解来标...

随风溜达的向日葵
5分钟前
0
0
利用世界杯,读懂 Python 装饰器

Python 装饰器是在面试过程高频被问到的问题,装饰器也是一个非常好用的特性, 熟练掌握装饰器会让你的编程思路更加宽广,程序也更加 pythonic。 今天就结合最近的世界杯带大家理解下装饰器。...

猫咪编程
8分钟前
0
0
flink fold example

flink fold例子 import org.apache.flink.api.common.functions.*;import org.apache.flink.streaming.api.datastream.DataStream;import org.apache.flink.streaming.api.environment.S......

coord
9分钟前
0
0
c++ qt 组播总结

每个人都有不同的认知规律和习惯, 有的人喜欢搞一套严密的大理论, 论述起来滔滔不绝, 不管自己懂不懂, 反正读者/听者是没搞懂。 有的人喜欢从实践出发, 没看到代码, 不运行一下, 不看...

backtrackx
14分钟前
0
0
Sublime text2安装json格式化插件SublimePrettyJson[Windows]

一、下载SublimePrettyJson插件包 https://github.com/dzhibas/SublimePrettyJson 二、将下载的文件解压放到在package目录下面 C:\Users\lucky\AppData\Roaming\Sublime Text 3\Packages 每个......

lazy~
14分钟前
0
0
安装vue-cli 报4058错误

1. 4058是网络代理错误。 安装淘宝源修改一下就可以了: npm --registry https://registry.npm.taobao.org info underscore 改为cnpm执行: cnpm install --global vue-cli 安装成功: 试试版...

MrBoyce
15分钟前
0
0
CPU飙升分析

1、top -----看具体的进程 2、top -H -p pid ------该进程的线程 3、printf 0x%x 15248 ------将线程改为16进制 4、jstack 进程...

北极之北
18分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部