精华内容
下载资源
问答
  • ICU

    2021-02-23 11:50:05
    ICU(International Components for Unicode,Unicode国际组件)是一套成熟,使用广泛的开源全球化API。ICU利用Unicode庞大的通用语言环境数据存储库(Common Locale Data Repository,CLDR)作为其数据库,为软件...

    ICU(International Components for Unicode,Unicode国际组件是一套成熟,使用广泛的开源全球化API。ICU利用Unicode庞大的通用语言环境数据存储库(Common Locale Data Repository,CLDR)作为其数据库,为软件应用程序提供了全球化支持。ICU具有广泛的可移植性,可以在所有平台上为应用程序提供相同的结果。

        ICU提供的全球化API服务的重点

    • 代码页转换:将文本数据与Unicode以及几乎任何其他字符集或编码进行文本数据转换ICU的转换表基于IBM数十年来收集的字符集数据,并且在任何地方都是最完整的。
    • 排序规则:根据特定语言,地区或国家/地区的约定和标准比较字符串。ICU的归类基于Unicode归类算法以及CLDR中特定于语言环境的比较规则。
    • 格式设置:根据所选区域设置的格式设置数字,日期,时间和货币金额。这包括将月份和日期名称翻译成所选语言,选择适当的缩写,正确地订购字段等。此数据也来自“通用语言环境”数据存储库。
    • 时间计算:除了传统的公历之外,还提供多种类型的日历。提供了一套完整的时区计算API。
    • Unicode支持:ICU密切跟踪Unicode标准,可轻松访问所有的许多Unicode字符属性,Unicode规范化,大小写转换和其他基本操作由指定的Unicode标准
    • 正则表达式:ICU的正则表达式完全支持Unicode,同时提供非常有竞争力的性能。
    • Bidi:支持处理包含从左到右(英语)和从右到左(阿拉伯语或希伯来语)数据的混合文本。

    有关更多信息,您可以访问ICU网站:http : //site.icu-project.org/

        概述

    在Windows 10 Creators Update中,ICU已集成到Windows中,从而使C API和数据可公开访问。

    Windows中的ICU版本仅公开C API。它不公开任何C ++ API。不幸的是,由于C ++中缺少稳定的ABI,因此不可能公开C ++ API。

    有关ICU C API的文档,请参阅此处的官方ICU文档页面:http : //icu-project.org/apiref/icu4c/index.html#Module

        Windows中ICU库的更改历史记录

        1703版(创建者更新)

    ICU库最初是在此版本中添加到Windows 10操作系统的。它被添加为:

    • 两个系统DLL:
      • icuuc.dll(这是ICU“公共”库)
      • icuin.dll(这是ICU“ i18n”库)
    • Windows 10 SDK中的两个头文件:
      • icucommon.h
      • icui18n.h
    • Windows 10 SDK中有两个导入库:
      • icuuc.lib
      • icuin.lib

        1709版(秋季创作者更新)

    添加了一个组合的头文件icu.h,其中包含上述两个头文件的内容(icucommon.h和icui18n.h),并且还将的类型更改UCHARchar16_t

        1903版(2019年5月更新)

    添加了一个新的组合DLL icu.dll,其中包含“ common”和“ i18n”库。此外,新的导入库已添加到Windows 10 SDK:icu.lib

    今后,不会将新的API添加到旧的标头(icucommon.h和icui18n.h)或旧的导入库(icuuc.lib和icuin.lib)中。新的API仅会添加到组合的标头(icu.h)和组合的导入库(icu.lib)中。

        入门

    遵循三个主要步骤:(Windows 10 Creators Update或更高版本)

    1. 您的应用程序需要以Windows 10版本1703(创建者更新)或更高版本为目标。

    2. 添加标题:

      句法复制
       
      #include <icucommon.h>
      #include <icui18n.h>
      

      在Windows 10版本1709及更高版本上,您应改为包含组合标题:

      句法复制
       
      #include <icu.h>
      
    3. 链接到两个库:

      • icuuc.lib
      • icuin.lib

      在Windows 10版本1903和更高版本上,您应该改用合并的库:

      • icu.lib

    然后,您可以从所需的这些库中调用任何ICU C API。(没有公开的C ++ API。)

    如果使用的是旧版导入库icuuc.lib和icuin.lib,请确保在“其他依赖项链接程序”设置中将它们列在伞形库(如onecoreuap.lib或WindowsApp.lib)之前(请参见下图)。否则,链接器将链接到icu.lib,这将导致尝试在运行时加载icu.dll。该DLL仅从1903版开始存在。因此,如果用户在1903版之前的Windows计算机上升级Windows 10 SDK,则该应用程序将无法加载和运行。有关Windows中ICU库的历史记录,请参阅Windows中ICU库的更改历史记录

    ICU示例

     笔记

    • 这是“所有平台”的配置。
    • 为了使Win32应用程序使用ICU,他们需要首先调用CoInitializeEx
    • 并非所有ICU API返回的数据都将与Windows OS对齐,因为此对齐工作仍在进行中。 

        ICU示例应用程序

         示例代码段

    以下示例说明了如何在C ++ UWP应用程序中使用ICU API。(它不打算成为一个完整的独立应用程序,而只是一个调用ICU方法的示例。)

    下面的小示例假定有ErrorMessageOutputMessage方法以某种方式将字符串输出给用户。

    句法复制
    // On Windows 10 Creators Update, include the following two headers. With Windows 10 Fall Creators Update and later, you can just include the single header <icu.h>.
    #include <icucommon.h>
    #include <icui18n.h>
    
    void FormatDateTimeICU()
    {
        UErrorCode status = U_ZERO_ERROR;
    
        // Create a ICU date formatter, using only the 'short date' style format.
        UDateFormat* dateFormatter = udat_open(UDAT_NONE, UDAT_SHORT, nullptr, nullptr, -1, nullptr, 0, &status);
    
        if (U_FAILURE(status))
        {
            ErrorMessage(L"Failed to create date formatter.");
            return;
        }
    
        // Get the current date and time.
        UDate currentDateTime = ucal_getNow();
    
        int32_t stringSize = 0;
        
        // Determine how large the formatted string from ICU would be.
        stringSize = udat_format(dateFormatter, currentDateTime, nullptr, 0, nullptr, &status);
    
        if (status == U_BUFFER_OVERFLOW_ERROR)
        {
            status = U_ZERO_ERROR;
            // Allocate space for the formatted string.
            auto dateString = std::make_unique<UChar[]>(stringSize + 1);
    
            // Format the date time into the string.
            udat_format(dateFormatter, currentDateTime, dateString.get(), stringSize + 1, nullptr, &status);
    
            if (U_FAILURE(status))
            {
                ErrorMessage(L"Failed to format the date time.");
                return;
            }
    
            // Output the formatted date time.
            OutputMessage(dateString.get());
        }
        else
        {
            ErrorMessage(L"An error occured while trying to determine the size of the formatted date time.");
            return;
        }
    
        // We need to close the ICU date formatter.
        udat_close(dateFormatter);
    }

     

    展开全文
  • icu

    2019-09-12 22:27:08
    icu/source/tools/toolutil.h中_mkdir错误: 修改toolutil的 #if defined(U_WINDOWS) || defined(U_MINGW)  retVal = mkdir(pathname); #else 。。。 为: #if defined(U_WINDOWS)  retVal = _mkdir(pathname); #...

    ./runConfigureICU MinGW --disable-shared --enable-static --disable-debug --enable-release --prefix=/mingw   //本次必须是在/mingw下
    ./runConfigureICU MinGW --disable-shared --enable-static --disable-release --enable-debug --prefix=$PWD/../dist_debug
    ./runConfigureICU --enable-debug --disable-release MinGW --prefix=/mingw --enable-static --disable-shared
    ./runConfigureICU MinGW --prefix=/mingw --enable-static --disable-shared
    #make -j2 -s
    make
    make install

    需要先在/mingw下make install(release)一次 让个库的文件路径正确
    再编译到别的路径再以下更名
    手动将debug/lib/下文件改名debug = *d.a
    将release/lib/下文件名release = *.a
    与debug/lib合并 复制dist_...目录复制到/mingw目录下
    mingw下静态编译库名为libs*.a使用时需要改名为lib*.a

    52.1可直接过
    52.1 make install最后一步rm -f current ...失败 就按 rm -rf current...重执行一遍

    icu/source/tools/toolutil.h中_mkdir错误:
    修改toolutil的
    #if defined(U_WINDOWS) || defined(U_MINGW)
        retVal = mkdir(pathname);
    #else
    。。。

    为:
    #if defined(U_WINDOWS)
        retVal = _mkdir(pathname);
    #elif defined(U_MINGW)
        retVal = mkdir(pathname);
    #else
    。。。

    转载于:https://my.oschina.net/rechy/blog/189713

    展开全文
  • os-icuICU包装-源码

    2021-02-12 20:23:38
    os-icuICU包装
  • analysis-icu

    2020-10-14 15:18:49
    analysis-icu-6.8.6.zip analysis-icu-6.8.6.zip analysis-icu-6.8.6.zip analysis-icu-6.8.6.zip
  • icu_parser 从包中提取的ICU解析器。
  • icu4x-docs:ICU4X文件
  • darling-icu:苹果版本的ICU
  • icu.cr:ICU库的Cystal绑定包装器
  • icu-dotnet是 “ ICU for C”的子集的C#包装器。 ICU是成熟的,广泛使用的C / C ++和Java库集,可为软件应用程序提供Unicode和全球化支持。 ICU具有广泛的可移植性,可以在所有平台上以及C / C ++和Java软件之间为...
  • ICU认识

    2019-05-08 15:39:03
    文章目录ICU认识什么的是ICU为什么ICU4C关于CLDR为什么ICU4J谁都在使用ICU ICU认识 翻译自官网:http://site.icu-project.org/ 什么的是ICU ICU是一种成熟的、广泛使用的C/C++和Java库集,为软件应用提供Unicode...

    ICU认识

    翻译自官网:http://site.icu-project.org/

    什么的是ICU

    ICU是一种成熟的、广泛使用的C/C++和Java库集,为软件应用提供Unicode和全球化支持。ICU具有广泛的可移植性,在所有平台和C/C++和Java软件之间都有相同的结果。

    ICU是根据非限制性开放源代码许可证发布的,该许可证适用于商业软件和其他开放源代码或免费软件。

    功能

    • 代码转换
      将文本数据转换成或转换成Unicode以及几乎任何其他字符集或编码。ICU的转换表是基于IBM在过去几十年中收集到的字符集数据,是最完整的比任何地方。

    • 排序
      根据特定语言、地区或国家的惯例和标准比较字符串。ICU的排序基于Unicode排序算法以及来自通用区域设置数据存储库的特定于区域设置的比较规则,这是此类数据的综合源。

    • 格式
      根据所选区域设置的惯例设置数字、日期、时间和货币金额的格式。这包括将月份和日期名称转换为所选语言、选择适当的缩写、正确排序字段等。这些数据也来自通用的区域设置数据存储库。

    • 时间计算
      除了传统的公历外,还提供多种类型的日历。提供了一套完整的时区计算API。

    • Unicode支持
      ICU密切跟踪Unicode标准,方便访问所有Unicode字符属性、Unicode规范化、大小写折叠和Unicode标准指定的其他基本操作。

    • 正则表达式
      ICU的正则表达式完全支持Unicode,同时提供非常有竞争力的性能。

    • bidi
      支持处理包含从左到右(英语)和从右到左(阿拉伯语或希伯来语)数据混合的文本。

    • 文本边界
      在文本范围内定位单词、句子、段落的位置,或标识在显示文本时适合换行的位置。

    为什么ICU4C

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

    关于CLDR

    CLDR
    参考URL: https://www.zhihu.com/topic/20104252/hot

    CLDR 是 Unicode Consortium(Unicode 联盟)下属的一个项目,并不从属于 Unicode Standard(Unicode 标准,即我们一般说的 Unicode),它们是两个平行的项目。

    为什么ICU4J

    Java为全球程序提供了很强的基础,IBM和ICU团队在向Sun的Java提供全球化技术方面发挥了关键作用。但由于其(java)发布时间长,Java不能总是保持不断更新的标准。ICU团队继续扩展Java的Unicode和国际化支持,专注于提高性能,保持与Unicode标准的一致性,并提供更丰富的API,同时尽可能保持与原始Java文本和国际化API设计的兼容。

    总结:java本身有相关国际化api,但是java发布周期比较长,使用ICU可以紧跟标准。

    谁都在使用ICU

    • Companies and Organizations using ICU
      公司和组织使用ICU
      ABAS Software, Adobe, Amazon (Kindle), Amdocs, Apache, Appian, Apple, Argonne National Laboratory, Avaya, BAE Systems Geospatial eXploitation Products, BEA, BluePhoenix Solutions, BMC Software, Boost, BroadJump, Business Objects, caris, CERN, CouchDB, Debian Linux, Dell, Eclipse, eBay, EMC Corporation, ESRI, Facebook (HHVM), Firebird RDBMS, FreeBSD, Gentoo Linux, Google, GroundWork Open Source, GTK+, Harman/Becker Automotive Systems GmbH, HP, Hyperion, IBM, Inktomi, Innodata Isogen, Informatica, Intel, Interlogics, IONA, IXOS, Jikes, Library of Congress, LibreOffice, Mathworks, Microsoft, Mozilla, Netezza, Node.js, Oracle (Solaris, Java), Lawson Software, Leica Geosystems GIS & Mapping LLC, Mandrake Linux, OCLC, Progress Software, Python, QNX, Rogue Wave, SAP, SIL, SPSS, Software AG, SuSE, Sybase, Symantec, Teradata (NCR), ToolAware, Trend Micro, Virage, webMethods, Wine, WMS Gaming, XyEnterprise, Yahoo!, Vuo, and many others.

    • Apache Projects
      Harmony, Lucene search library, OpenOffice, PDFBox library, Solr search engine server, Tika metadata toolkits, Xalan XSLT, Xerces XML

    • Products from IBM
      DB2, Lotus, Websphere, Tivoli, Rational, AIX, i/OS, z/OS

    Ascential Software, Cloudant, Cognos, PSD Print Architecture, COBOL, Host Access Client, InfoPrint Manager, Informix GLS, Language Analysis Systems, Lotus Notes, Lotus Extended Search, Lotus Workplace, WebSphere Message Broker, NUMA-Q, OTI, OmniFind, Pervasive Computing WECMS, Rational Business Developer and Rational Application Developer, SS&S Websphere Banking Solutions, Tivoli Presentation Services, Tivoli Identity Manager, WBI Adapter/ Connect/Modeler and Monitor/ Solution Technology Development/WBI-Financial TePI, Websphere Application Server/ Studio Workload Simulator/Transcoding Publisher, XML Parser.

    • Products from Google
      Web Search, Google+, Chrome/Chrome OS, Android, Adwords, Google Finance, Google Maps, Blogger, Google Analytics, Google Groups, and others.

    • Products from Apple
      macOS (OS & applications), iOS (iPhone, iPad, iPod touch), watchOS & tvOS, Safari for Windows & other Windows applications and related support, Apple Mobile Device Support in iTunes for Windows.

    • Products from Microsoft

    • Products from Harman/Becker

    • Products from Adobe

    ICU用户向导

    翻译自官方:http://userguide.icu-project.org/

    ICU历史背景

    ICU最初由泰利根公司开发。Taligent团队后来成为位于Cupertino的IBM®全球化能力中心的Unicode小组。该团队已经收到了来自全球开放源码社区的大量输入。

    在TaligTin开发的Java类被纳入Sun®微系统开发的Java开发工具包(JDK)1.1中。然后将这些类移植到C++中,之后一些类也被移植到C中。这些类提供了用于在C、C++或Java编程语言中编写全局应用程序的国际化工具。

    Java的ICU(ICU4J)包括这些类中的一些增强版本,以及补充JDK中类的附加类。C和C++版本的相同的国际功能在ICU可用于C(ICU4C)。由于语言差异和新功能,API略有不同。例如,ICU4C包含字符转换器API。

    ICU4J和ICU4C保持相同的发展目标。它们都跟踪Java国际化API的添加,并实现最新发布的Unicode标准。它们还维护一个单一的、可移植的源代码库。

    ICU和开源小组的所有人都很感谢您花时间了解我们的技术。我们已经将我们的最大努力投入到这些开放组件中,并期待您的问题、评论和建议。

    ICU4J FAQ

    1. ICU和JDK的比较:有什么区别?
      对比图 http://site.icu-project.org/charts/comparison

    2. 如何在系统上获取ICU4J库的版本信息?
      You can get the ICU4J version information by public API class com.ibm.icu.util.VersionInfo. The static field VersionInfo.ICU_VERSION contains the current ICU4J library version information.

    Since ICU4J 4.6, ICU4J jar file includes Main-Class that prints out the ICU version information like below -

    $ java -jar icu4j.jar
    International Component for Unicode for Java 4.8

    Implementation Version: 4.8
    Unicode Data Version: 6.0
    CLDR Data Version: 2.0
    Time Zone Data Version: 2011g
    3. 如何创建自己的字典文件?
    现在,你不能。我们没有包括我们用来创建字典文件的工具,因为它非常粗糙和非常慢。字典文件的格式在将来也很可能会改变。如果您真的想创建自己的字典文件,请与我们联系,我们将看到我们可以做什么。

    展开全文
  • Unicode-ICU:从perl到ICU的接口
  • Upgrade ICU

    2020-12-05 09:01:47
    <div><h1>Summary <pre><code>Upgrade ICU to Chromium M76 used version. Fixes #98 ICU version is 64.2 https://chromium.googlesource.com/chromium/src/+/refs/tags/76.0.3809.87/DEPS#984 ...
  • ICU接口文档

    2018-08-15 09:24:55
    医院ICU系统详细接口,本接口是医院HIS、EMR、LIS、PACS与ICU系统之间的接口,具体接口规范以视图、web、XML等方式实现。
  • icuicu信息语法

    2021-05-07 10:01:19
    前言 我在查询i18n时看见文档上科普icu信息语法。据文档称该语法被广泛用在c , c++,java与php中。 icu是 International Components for Unicode 的缩写。 ICU信息语法官网 ...

    前言

    • 我在查询i18n时看见文档上科普icu信息语法。据文档称该语法被广泛用在c , c++,java与php中。
    • icu是 International Components for Unicode 的缩写。

    ICU信息语法官网

    • https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html

    {key, type, format}

    • icu信息语法最重要的是格式化概念,他不仅可以插一个参数来替换插值,剩下2个插值一个用来表示其模型(这个是有内部实现),一个用来以某种方式格式化其插值(和上一个参数模型有关)。
    • 例如:
    I have {numCats, number} cats.
    Almost {pctBlack, number, ::percent} of them are black.
    

    {key, select, matches}

    • 可以作为条件判断选择使用,例如:
    {gender, select,
        male {He}
        female {She}
        other {They}
    } will respond shortly.
    
    • 甚至进行嵌套:
    {taxableArea, select,
        yes {An additional {taxRate, number, percent} tax will be collected.}
        other {No taxes apply.}
    }
    

    {key, plural, matches}

    • 复数格式的存在是因为很多语言会对复数处理不太一样。
    • 例如:
    Cart: {itemCount} {itemCount, plural,
        one {item}
        other {items}
    }
    You have {itemCount, plural,
        =0 {no items}
        one {1 item}
        other {{itemCount} items}
    }.
    
    • 使用#可以格式化为{key,number}
    You have {itemCount, plural,
        =0 {no items}
        one {# item}
        other {# items}
    }.
    

    {key, selectordinal, matches}

    • 和上面复数有点像,也是个类似复数的表现:
    It's my cat's {year, selectordinal,
        one {#st}
        two {#nd}
        few {#rd}
        other {#th}
    } birthday!
    
    • 不同之处是这种语法会被映射到一个map

    富文本格式化

    • icu支持富文本,但是这个像html的标签并不是xml或者html标签。
    Our price is <boldThis>{price, number, ::currency/USD precision-integer}</boldThis>
    with <link>{pct, number, ::percent} discount</link>
    

    转义

    • 语法必然会有转义 使用’进行转义
    "This is not an interpolation: '{word}"
    //→ "This is not an interpolation: {word}"
    "These are not interpolatons: '{word1} {word2}'"
    //→ "These are not interpolatons: {word1} {word2}"
    "'<notATag>"
    //→ "<notATag>"
    "'<notATag>hello</notATag>'"
    //→ "<notATag>hello</notATag>"
    
    • 多重转义
    "This '{isn''t}' obvious."
    //→ "This {isn't} obvious."
    
    展开全文
  • SQLite3-ICU 目的 基于ICU构造SQLite3中文分词器,用于Android App全文检索。 参考列表 官方介绍, 中文分词器用到Analysis特性,; Android内置ICU源码,不同Android版本内置不同版本ICU(不同版本ICU,源码不兼容...
  • 完整ICU数据的测试 这是对软件包的测试。 运行测试: npm install npm run test 如果一切顺利,它应该可以成功打印。 如果一切都不顺利,它将抱怨。 问题? 在这是full-icu软件包的主页)下归档错误。 执照 数据...
  • 和暦表示 使用icu4j库 作业系统5(Api等级21) 作业系统8(Api等级26) 操作系统11(Api级别30) 使用android.icu API 作业系统8(Api等级26) 操作系统11(Api级别30)
  • ICU项目是在的领导下进行。 资料来源: : 错误: : API文件: : 用户指南: : 生成状态( master分支) 建立 状态 TravisCI Azure管道 Azure管道(详尽测试) Azure管道(Valgrind ICU4C) AppVeyor ...
  • The ICU project is under the stewardship of The Unicode Consortium. Source: https://github.com/unicode-org/icu Bugs: https://unicode-org.atlassian.net/projects/ICU API Docs: ...
  • ICU4C国际化问题

    2020-12-16 22:22:29
    ICU4C是ICU在C/C++平台下的版本, ICU(International Component for Unicode)是基于"IBM公共许可证"的,与开源组织合作研究的, 用于支持软件国际化的开源项目。ICU4C提供了C/C++平台强大的国际化开发能力,软件开发者...
  • ICU-csdet 从 ICU 中提取的字符集检测引擎库。 请参阅 #include <icu> int main(int argc, char ** argv) { char * input_data; size_t input_data_size; icu_csdet * det; icu_csmatch * match; const char...
  • 从 Mac 为 android 和 iOS 构建 icu 本文档旨在记录如何从Mac(主机)交叉编译Android和iOS的icu 下载,将其放置在名为 'icu' 的目录中。 目录树如: icu-55_1/ |-- icu/ | |-- as_is/ | |-- packaging/ | `-...
  • ICU理论试题

    2021-01-20 01:19:58
    Sheet1ICU理论试题1(月份)姓名学科编号PO1题型一(判断题)1.呼吸机高压报警限应设置在气道峰值压之上10cmH20。()2.病人气胸时,胸引管安放的位置在患侧的腋中线的第二肋间隙处()3.
  • 当我像往常一样执行npm install的时候,电脑给我了一个重大的...dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.62.dylib Referenced from: /usr/local/bin/node Reason: image not found [1] ...
  • harfbuzz-icu-freetype 使用Freetype2,UCDN和ICU的CMake构建配置的Harfbuzz 要在您的项目中使用,只需将以下内容添加到您的cmake配置中: # Harfbuzz ICU Freetype add_subdirectory ( ${PROJECT_SOURCE_DIR} /...
  • text-icu操作的简单测试。
  • icu for android

    2013-10-11 15:02:05
    icu for android. icu4c-52_1-src.gz icu4c-52_1-docs.zip icu4c-52_1-data.zip
  • ICU_MQP ICU MQP 2015 团队的代码库
  • ICU source code

    2015-09-21 23:47:44
    ICU unicode utf-8转换的源代码

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,825
精华内容 6,730
关键字:

ICU