Unicode非BMP平面字符在Linux上的实现

Abstract

随着计算机能力的提高,越来越多的文字信息需要通过计算机来处理,这迫切地需要软件全球化的支持。软件系统的国际化水平影响着其全球化能力。软件国际化就是指让软件的实现独立于具体文化、文字的能力。大多数的软件已经基于Unicode编码编码标准实现了软件的国际化。 本文通过研究Linux的主流桌面环境KDE/QT,对其国际化文字处理机制进行了深入的分析,成功地解决了KDE/QT不能支持Unicode标准中的Non-BMP字符的问题。在此基础上,实现了对藏文扩充集、中日韩表意字符集扩充区B的支持。具体地说,论文完成了以下工作: 第一,归纳了软件全球化、国际化、本地化之间的关系,对目前Linux操作系统的国际化系统部件进行了简要分析,分析表明:KDE/QT无法支持Unicode的Non-BMP字符。 第二,结合Unicode字符模型,分析了QT国际化文本处理引擎、支持多种文字处理的机制、QT国际化文字处理流程。其中,详细讨论了字体匹配算法,并找出其中存在的问题。 第三,尝试了以UTF-16、UTF-32为基础的两种不同的QT处理码改造方案,比较各自的实现代价;基于UTF-16编码方式,使KDE/QT支持Unicode标准中的全部字符,包括BMP字符和Non-BMP字符。 第四,将本地若干个物理字体抽象成一个逻辑字体,设计了逻辑字体,提高了字形查找的成功率,解决了原来QT库字体匹配机制中的错误。 第五, 从本地化系统的角度,在KDE/QT上实现了藏文扩充集、中日韩表意字符集扩充区B的支持

    Similar works