首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用FLTK显示Unicode?

如何用FLTK显示Unicode?
EN

Stack Overflow用户
提问于 2013-10-05 14:27:59
回答 1查看 1.4K关注 0票数 6

根据FLTK 1.3.2文件

Unicode支持直到最近才添加到FLTK中,而且仍然不完整。

然而,据推测,下列各项都得到了执行:

必须指出,在FLTK中初步实施Unicode和UTF-8涉及三个重要领域:

  • Unicode字符表的提供及一些简单的相关功能
  • 字符表示的字符*变量和函数参数转换为UTF-8可变长度 序列
  • 修改显示字体接口,以接受通用Unicode字符或UCS代码号,而不仅仅是ASCII或Latin1字符。

我的问题是,如何在FLTK控件上实际显示Unicode?我找不到任何接受Unicode的小部件函数。例如,这是label函数的签名:

void Fl_Widget::label ( const char * text )

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-07 13:30:40

从你发布的链接中:

FLTK将使用UTF-8编码完全转换为Unicode .如果底层操作系统需要不同的编码,FLTK将根据需要转换字符串。

您列出的三个要点是它们实现Unicode支持的区域;也就是说,这些是他们正在做或计划做的事情。

  • FLTK实现者将提供Unicode字符表和一些简单的相关功能。
  • FLTK实现者将把char*变量和函数参数从使用SBCS转换为UTF-8。(也就是说,他们将重新实现FLTK函数和变量,将char*字符串作为UTF-8处理。)
  • FLTK实现者将修改显示字体界面,以涵盖不仅仅是ASCII和Latin1字符。

我的问题是,如何在FLTK控件上实际显示Unicode?我找不到任何接受Unicode的小部件函数。例如,这是label函数的签名: void Fl_Widget::label ( const char * text )

许多人错误地使用“Unicode”来表示使用2字节字符的编码。链接到的FLTK文档没有犯这个错误。了解这一点后,文档非常清楚地说明了如何使用上面的签名使用Unicode :使用UTF-8编码将Unicode数据作为char*字符串传递。例如,如果您使用的编译器使用UTF-8作为执行编码:

代码语言:javascript
复制
widget.label("кошка 日本国");

或者如果您有一个C++11编译器:

代码语言:javascript
复制
widget.label( u8"кошка 日本国");
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19198848

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档