ICU (International Components for Unicode)是为软件应用提供Unicode和全球化支持的一套成熟、广泛使用的C/C++、Java和.NET 类库集,可在所有平台的C/C++、Java和C# 软件上获得一致的结果,用于支持软件国际化的开源项目, 软件开发者几乎可以使用ICU 解决任何国际化的问题,根据各地的风俗和语言习惯,实现对数字、货币、时间、日期、和消息的格式化、解析,对字符串进行大小写转换、整理、搜索和排序等功能。ICU的主页是http://www.icu-project.org/

ICU首先是由Taligent公司开发的,Taligent公司被合并为IBM公司全球化认证中心的Unicode研究组后,ICU由IBM和开源组织合作继续开发。开始ICU只有Java平台的版本,后来这个平台下的ICU类被吸纳入SUN公司开发的JDK1.1,并在JDK以后的版本中不断改进。C++和C平台下的ICU是由JAVA平台下的ICU移植过来的,移植过的版本被称为ICU4C,来支持这C/C++两个平台下的国际化应用。ICU4J和ICU4C区别不大,但由于ICU4C是开源的,并且紧密跟进Unicode标准,ICU4C支持的Unicode标准总是最新的;同时,因为JAVA平台的ICU4J的发布需要和JDK绑定,ICU4C支持Unicode标准改变的速度要比ICU4J快的多。在Linux 操作系统上,.NET Core 使用ICU的全球化API, 从 .NET 5.0 开始,如果应用在 Windows 10 2019 年 5 月更新或更高版本上运行,.NET 库将使用 ICU 全球化 API。.NET 5 统一使用ICU, 引入此更改的原因有两个:

  • 应用跨平台(包括 Linux、macOS 和 Windows)具有相同的全球化行为。

  • 应用可以通过使用自定义 ICU 库来控制全球化行为。

ICU的功能主要有:

  • 代码页转换: 对文本数据进行Unicode、几乎任何其他字符集或编码的相互转换。ICU的转化表基于IBM过去几十年收集的字符集数据,在世界各地都是最完整的。

  • 排序规则(Collation): 根据特定语言、区域或国家的管理和标准比较字数串。ICU的排序规则基于Unicode排序规则算法加上来自公共区域性数据仓库(Common locale data repository)的区域特定比较规则。

  • 格式化: 根据所选区域设置的惯例,实现对数字、货币、时间、日期、和利率的格式化。包括将月和日名称转换成所选语言、选择适当缩写、正确对字段进行排序等。这些数据也取自公共区域性数据仓库。

  • 时间计算: 在传统格里历基础上提供多种历法。提供一整套时区计算API。

  • Unicode支持: ICU紧密跟进Unicode标准,通过它可以很容易地访问Unicode标准制定的很多Unicode字符属性、Unicode规范化、大小写转换和其他基础操作。

  • 正则表达式: ICU的正则表达式全面支持Unicode并且性能极具竞争力。

  • Bidi: 支持不同文字书写顺序混合文字(例如从左到右书写的英语,或者从右到左书写的阿拉伯文和希伯来文)的处理。

  • 文本边界: 在一段文本内定位词、句或段落位置、或标识最适合显示文本的自动换行位置。

参考:

  • https://docs.microsoft.com/zh-cn/dotnet/core/compatibility/globalization

国际化组件 Unicode (ICU) 函数库相关推荐

  1. 【Android FFMPEG 开发】FFMPEG 交叉编译配置 ( 下载 | 配置脚本 | 输出路径 | 函数库配置 | 程序配置 | 组件配置 | 编码解码配置 | 交叉编译配置 | 最终脚本 )

    文章目录 一.FFMPEG 源码下载 解压 二.交叉编译工具 三.configure 脚本及帮助命令 四.配置 configure 脚本 五.输出目录配置 六.函数库配置 七.程序配置选项 八.组件配 ...

  2. DSAPI多功能.NET函数库组件

    DSAPI.dll不定期更新,增加功能,故无法每次都发到网上,如果需要获得最新版DSAPI.dll的,请到QQ群:419130936群共享里下载. 简介     dsapi.dll是一款基于.net平 ...

  3. python语言的计算生态规模有多大_【单选题】Python 语言的一个重要特点是它有较多的计算生态,简单理解为第三方提供的可用编程模块 / 函数库 / 组件,这个规模有多大?...

    [单选题]Python 语言的一个重要特点是它有较多的计算生态,简单理解为第三方提供的可用编程模块 / 函数库 / 组件,这个规模有多大? 更多相关问题 [问答题,简答题] 顾客关系管理系统如何给企业 ...

  4. Web---JSTL(Java标准标签库)-Core核心标签库、I18N国际化、函数库

    前面为JSTL中的常用EL函数,后面的为具体演示实例! JSTL简介: JSTL(Java Standard Tag Library) –Java标准标签库. SUN公司制定的一套标准标签库的规范. ...

  5. 值得学习与推荐的c/c++框架和函数库

           这几天不上班,翻翻Evernote中记录的一些笔记,刚好有时间把记录的一些好玩链接转载一下.        这篇文章里提到的很多库都用过,尤其是图像处理相关库,尤其是opencv及cxi ...

  6. php mb开启,windows环境下如何为php开启mb_string函数库功能

    1.确保你的Windows/system32下有php_mbstring.dll这个文件,没有就从你Php安装目录extensions里拷入Windows/system32里面. 2.在windows ...

  7. 标准C函数库头文件、POSIX标准库头文件和Windows API函数库头文件说明

    1. 标准C函数库头文件 名字 源自 描述 <assert.h> 包含断言宏,被用来在程序的调试版本中帮助检测逻辑错误以及其他类型的bug. <complex.h> C99 一 ...

  8. 知识分享之Golang——go-i18n国际化组件

    知识分享之Golang--go-i18n国际化组件 背景 知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家,来进行共同学习.欢迎大家 ...

  9. 前端常用Utils工具函数库合集

    前端常用Utils工具函数库合集 在开发中,我们经常会将一些常用的代码块.功能块进行封装,为的是更好的复用.那么,被抽离出来独立完成功能,通过API或配置项和其他部分交互,便形成了插件. 函数库 Lo ...

最新文章

  1. 《2040大预言:高科技引擎与社会新秩序》——2.6 会计师如何改写未来
  2. 比特币是什么,看这篇就懂了
  3. sklearn输出模型参数_如何使用sklearn优雅地进行数据挖掘?
  4. Qt Creator使用自定义着色器
  5. Oracle中通过游标执行带参数的存储过程实现解析CLOB字段内的xml字符串:
  6. 实现 npm script 跨平台兼容
  7. 深度学习“四大名著”发布!Python、TensorFlow、机器学习、深度学习四件套!
  8. 这就是华为Mate 30 Pro真机了,价格或许要高攀不起了?
  9. 11 二叉查找树中搜索区间
  10. Cry On My Shoulder (背景音乐)
  11. python替换img的路径为新的路径_python – Django |连接路径位于基本路径组件之外{%static img.thumbnail.url%},错误400与whitenoise...
  12. Win10/Win8快速启动失效/卡logo 的解决方法汇总
  13. 人工智能的常用十种算法
  14. 在jsp代码添加背景图片
  15. 达梦数据库DSC小记
  16. CENTOS7 安装mantis
  17. android 心率传感器,安卓手表开发 心率篇 Android wear heart rate
  18. 口头禅多多......
  19. cad显示有点暗_CAD参照的图框颜色太暗怎么办?CAD调整参照图纸明暗的方法
  20. 多生产者单消费者捆绑消费问题

热门文章

  1. StackExchange.Redis 使用 (一)
  2. PPT设计中的用图问题
  3. 开发针对特殊租户的Teams机器人
  4. 爱普生第三方相机_值得购买第三方相机镜头吗?
  5. 设置单元格填充方式_单元格的选择及设置单元格格式
  6. idou老师教你学Istio06: 如何用istio实现流量迁移
  7. hdu 1848(Fibonacci again and again)(SG博弈)
  8. 独立开发一个云(PaaS)的核心要素, Go, Go, Go!!!
  9. JavaScript中的arguments,callee,caller
  10. 闲来没事写个记事本玩玩!!!