我的团队的任务是在我们的软件中实现Unicode,这超过了一百万行代码 . 我们在Windows,AIX或Solaris上使用Oracle或SQL Server数据库支持MFC客户端和服务器 . ICU看起来是一个非常有用的工具 . 使用ICU有哪些优缺点? ICU是否像广告中那样没有重大错误?
数据点:我们的(是的,这是免责声明)用户和错误列表全部在我们的project site上 .
IMBO(有偏见): Pros :
作为广告宣传,全面 .
成熟:现在已经10年了,有着良好的稳定政策和非常积极的发展 .
使用最新的Unicode CLDR BCP47其他标准 .
基本上到处编译 . C / C / J并由/ implements python,perl,php,...
开源,贡献者的多样性日益增加 .
附带上述所有必需的数据(见下文,缺点),但可定制 . (可以添加自定义数据)
Cons :
需要更好的文档(我们尝试 - 有人想帮忙吗?) .
很多API-"it's too big #1"很难知道要使用哪一个,即使它能够满足您的需求 .
用于许多类型的程序,从嵌入式设备,智能手机到主要桌面应用程序,再到数据库和操作系统以及企业应用程序:因此,可能有多种方法可以做某事 .
附带以上所需的所有数据! "it's too big #2"(见上文,专业版),但可自定义 . (可以减小尺寸)
ICU很可怕:尽可能避免 .
尽管它的年龄,它的基本内容被打破了,例如在这个问题中:Fixing regex to work around ICU/RegexKitLite bug
时间处理因未指定时间而中断:在许多API中,您无法以可靠的方式区分DST与非DST时间 .
这太棒了 .
文档需要大量工作 . 较少使用的功能通常无法使用,因为无法确定使用它们的正确方法 . 我花了好几天试图按照解释的音译工作,最终放弃了 .
它喜欢在UTF-16中工作,这是所有可能世界中最糟糕的 .
支持对问题没有反应 .
根据我的经验,直到你通过一个项目的大部分时间,你开始发现将占用90%的时间的阴险缺陷 .
对于很多人来说,别无选择,所以你会坚持下去 .
2 回答
数据点:我们的(是的,这是免责声明)用户和错误列表全部在我们的project site上 .
IMBO(有偏见): Pros :
作为广告宣传,全面 .
成熟:现在已经10年了,有着良好的稳定政策和非常积极的发展 .
使用最新的Unicode CLDR BCP47其他标准 .
基本上到处编译 . C / C / J并由/ implements python,perl,php,...
开源,贡献者的多样性日益增加 .
附带上述所有必需的数据(见下文,缺点),但可定制 . (可以添加自定义数据)
Cons :
需要更好的文档(我们尝试 - 有人想帮忙吗?) .
很多API-"it's too big #1"很难知道要使用哪一个,即使它能够满足您的需求 .
用于许多类型的程序,从嵌入式设备,智能手机到主要桌面应用程序,再到数据库和操作系统以及企业应用程序:因此,可能有多种方法可以做某事 .
附带以上所需的所有数据! "it's too big #2"(见上文,专业版),但可自定义 . (可以减小尺寸)
ICU很可怕:尽可能避免 .
尽管它的年龄,它的基本内容被打破了,例如在这个问题中:Fixing regex to work around ICU/RegexKitLite bug
时间处理因未指定时间而中断:在许多API中,您无法以可靠的方式区分DST与非DST时间 .
这太棒了 .
文档需要大量工作 . 较少使用的功能通常无法使用,因为无法确定使用它们的正确方法 . 我花了好几天试图按照解释的音译工作,最终放弃了 .
它喜欢在UTF-16中工作,这是所有可能世界中最糟糕的 .
支持对问题没有反应 .
根据我的经验,直到你通过一个项目的大部分时间,你开始发现将占用90%的时间的阴险缺陷 .
对于很多人来说,别无选择,所以你会坚持下去 .