我在哪里可以开始使用Unicode的友好的编程在C?
-
19-09-2019 - |
题
因此,我的工作在一个普通的-C(ANSI9899:1999年)的项目,我试图找出在哪里得到开始重新:Unicode,UTF-8,和所有的爵士乐。
具体而言,这是一个语言解释的项目,我有两个主要的地方在那里我会需要处理Unicode:阅读的源文件(语言表面上是支持Unicode的标识符,这样),并在'string'的对象。
我熟悉所有的明显的基础知识有关的Unicode,UTF-7/8/16/32&UCS-2/4的,所以等等...我主要是在寻找有用的,C-具体(即,请不C++或C#这是所有被记录在这里以前)的资源作为我的下一步骤的实施Unicode的友好的东西...在C。
任何链接,联机手册,维基百科的文章,例码,都是极其欢迎的。我也会尽量保持一个列表中的这些资源在这里,在原来的问题,对于那些发生在它后面。
- 一个 必须阅读 然后才考虑其他任何东西,如果你不熟悉Unicode,什么样的编码 实际上是: http://www.joelonsoftware.com/articles/Unicode.html
- UTF-8家页: http://www.utf-8.com/
man 3 iconv
(以及iconv_open
和iconvctl
)- 国际组for Unicode (通过 杰夫*兰迪)
libbasekit
, ,这似乎包括光Unicode-搬运工具- 巧舌如簧 有一些Unicode的功能
- 一个基本的 UTF-8检测器 功能,通过 克里斯托弗
解决方案
国际组for Unicode 提供一个便携式C库用于处理unicode。这里是他们的电梯间距为ICU4C:
C和C++语言和许多操作系统环境中不提供充分支持Unicode和符合标准的文本处理服务。尽管有些平台提供良好的Unicode文本处理服务、便携式应用程序的代码不能使用它们。该ICU4C图书馆填补这一空白。ICU4C提供一个公开、灵活、便携式的基础的应用程序使用他们的软件,全球化的要求。ICU4C密切跟踪的行业标准,包括Unicode和cldr,针(共同的区域数据库).
其他提示
巧舌如簧 有一些 Unicode的功能 是一个漂亮的轻型图书馆。这不近相同水平的功能,伊斯兰法院联盟提供的,但它可能不够好一些应用程序。其他功能的能言善道的是最好有便携式C节目。
GTK是建立在顶嘴.巧舌如簧提供了基本的算法语言结构的常重复的应用。这个图书馆具有的特征,例如(这个名单是不全面的清单):
- 目和类型的系统
- 主循环
- 动态加载的模块(即插件)
- 线的支持
- 计时器的支持
- 存储器
- 螺纹队列(同步和异步)
- 列出(单独的联系,双向链接、双结束)
- 哈希表
- 阵列
- 树(N元和二元平衡)
- 串公用事业和charset处理
- 词汇的扫描仪和XML parser
- Base64(编码和解码)
我认为一个有趣的问题是什么,应当您的规范内部的格式串呢?2显而易见的选择(至少对我来说)的
a)utf8在香草c-串 b)utf16在unsigned short阵列
在以前项目中,我们总是选择utf-8。为什么;因为它的阻力最小的通道的世界。一切你都与(stdio,string.h等)将正常工作。
接下来是什么文件的格式。这里的问题是其可见到你的用户(除非你提供的唯一的编辑对你的语言)。在这里,我猜你已经采取什么他们给你,并试图猜测通过偷看(byte了标记的帮助)