代码之家  ›  专栏  ›  技术社区  ›  Hamish Downer JKP

在哪里可以开始使用C进行Unicode友好编程?

  •  8
  • Hamish Downer JKP  · 技术社区  · 6 年前

    所以,我在做一个纯C(ANSI 9899:1999)项目,我想知道从哪里开始:Unicode,UTF-8,以及所有的jazz。

    具体来说,这是一个语言解释器项目,我有两个主要的地方需要处理Unicode:读取源文件(该语言表面上支持Unicode标识符等),以及读取字符串对象。

    任何链接、手册页、维基百科文章、示例代码都非常受欢迎。我也会尝试在原始问题中保留一个这样的资源列表,供以后遇到的任何人使用。


    3 回复  |  直到 8 年前
        1
  •  10
  •   Geoff Reedy    15 年前

    International Components for Unicode 提供用于处理unicode的可移植C库。以下是他们对ICU4C的电梯宣传:

    C语言和C++语言以及许多操作系统环境不提供Unicode和标准兼容的文本处理服务的完全支持。尽管某些平台确实提供了良好的Unicode文本处理服务,但可移植应用程序代码无法使用它们。ICU4C库填补了这一空白。ICU4C为应用程序的软件全球化需求提供了一个开放、灵活、可移植的基础。ICU4C密切跟踪行业标准,包括Unicode和CLDR(通用语言环境数据存储库)。

        2
  •  3
  •   Geoff Reedy    15 年前

    GLib 有一些 Unicode functions 这是一个非常轻量级的库。它与ICU提供的功能级别不尽相同,但对于某些应用程序来说,它可能已经足够好了。GLib的其他特性对于可移植的C程序也是很好的。

    • 对象和类型系统
    • 主回路
    • 模块(即插件)的动态加载
    • 螺纹支架
    • 定时器支持
    • 线程队列(同步和异步)
    • 哈希表
    • 树(N元和二元平衡)
    • 字符串实用程序和字符集处理
    • 词法扫描器和XML解析器
    • Base64(编码和;解码)
        3
  •  0
  •   pm100    15 年前

    a) utf8在香草c字串中 b) 无符号短数组中的utf16

    在以前的项目中,我总是选择utf-8。为什么;因为这是C世界中阻力最小的道路。您正在使用的所有接口(stdio、string.h等)都可以正常工作。