问题标签 [icu]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - 静态链接 ICU4C 使 uregex 函数失败
我将使用 ICU4C unicode 库,版本为 4.2.1(打包在 Ubuntu 10.04 中的版本)。我做了一个简单的测试代码;只是打开一个正则表达式对象。
我使用动态链接的 icu 库编译并运行,如下所示:
结果状态码为“0”。像魅力一样工作。
现在我决定像下面一样静态链接icu库,然后运行
结果状态码为“1”。uregex_open 函数失败,状态码为“U_ILLEGAL_ARGUMENT_ERROR”。
我是否错过了静态链接 ICU4C 的内容?
php - 什么是整数向量以及如何读取/使用它们?
如何应用在 ICU 数据文件中格式化的整数/整数向量...
例如;
我可以将这些格式化为人类可读的“起始”日期,例如 PHP 中的 1792-01-01 吗?
谢谢
// 罗兰
编辑:我在 PHP 中有整数;
linux - icu-config 获取静态库标志
如何获取 icu 的静态库标志。使用 icu-config 。
如果我跑icu-config --ldflags
它与动态库链接。我想链接到静态库。我怎样才能得到静态标志使用icu-config
php - 在 PHP 5.3.6 中更新 ICU 版本
我花了一些时间来安装 MediaWiki。作为安装基础,我使用带有 Windows 2003 和 iis 的虚拟机。在安装 php 并配置了一些东西之后,我现在卡在配置 intl 和 icu 上。
过了一会儿,我意识到,intl 是在 php 的 win 安装程序中提供的标准扩展。不幸的是,他们使用 icu 3.8 并且 MediaWiki 建议使用更新的版本。
因为我是 MediaWiki 的新手,所以我尝试安装所有建议。
我在网络下载链接中找到了新的 icu*.dll,但没有找到 intl.dll。在放置“旧” icu*38.dll 文件的目录中复制 7 个文件 icu*48.dll 将不起作用。我理解为什么会这样,因为我想,dll 需要文件名。
所以问题是,我在哪里可以使用更新版本的 icu 获得更新版本的 intl.dll,或者我可以使用 icu 4.6 编译 intl.dll。顺便说一句,我不是一个编译破解。
非常感谢弗兰克
unicode - Unicode 拉丁字母“WITH STROKE”的音译
将规则"NFD; [:Nonspacing Mark:] Remove; NFC"
输入ICU Transliterator demo,字符Ø
( \u00d8
== LATIN CAPITAL LETTER O WITH STROKE
) 保持原样(即 STROKE 未被剥离)。
在非标记空间列表(Category Mn
) 中,我找不到任何COMBINING DIAGONAL STROKE
类似于COMBINING SHORT STROKE OVERLAY
( \u0335
) 或COMBINING LONG STROKE OVERLAY
( \u0336
) 的名称。
但是,我确实找到了COMBINING SHORT SOLIDUS OVERLAY
( \u0337
) 和COMBINING LONG SOLIDUS OVERLAY
( \u0338
)。o
它们看起来很相似,但在我的浏览器中与和结合使用时会呈现出更粗的线条O
。
我访问的Unicode 数据\u00d8
不提供该字符的分解。
同时,ICU Collator Demo将使用 Primary (Level = 1 = Base Letter) Collator 将 、 、 、 和 中的每一个整理到ø
相同o
的Ø
代码点O
。o\u0337
O\u0338
这是否意味着 Demo 中使用的 Collator 的语言环境已设置为以 Unicode 规范没有提及的方式识别基本字符?
如果是这样,如果我想从LATIN [CAPITAL, SMALL] LETTER *
音译字符中删除笔划,是否需要自定义基于规则的音译器?
c++ - 在 Win32 上使用 icu u32_regex 内存泄漏/缓存来提升
当使用启用了可选 ICU 支持的 boost regex 类时(有关详细信息,请参阅boost 文档),我似乎遇到了内存泄漏,或者说发生了某种内存缓存,我似乎无法重置/清理。
有没有其他人看到这个并且可能知道清除缓存的方法,以便 boost 单元测试框架不会报告内存泄漏?
我的问题的详细信息是:-
虽然我确实尝试过使用 icu 4.2.1 的 boost 1.42,但我碰巧在我的系统上构建了相同的结果,所以不要认为这是一个可以通过更改为 boost 1.47 icu 4.8.1 来解决的问题,这是最新版本。
编译以下代码(Test.cpp):-
可以通过以下方式从命令行编译:-
为您的机器提供适当的头文件/库路径
如果没有路径,则将相应的 boost dll 复制到包含 test.exe 的目录(boost_regex-vc100-mt-gd-1_45.dll 和 boost_unit_test_framework-vc100-mt-gd-1_45.dll)
运行上述步骤中的 test.exe 时,我得到:-
我猜 icu 实际上是这里的罪魁祸首,因为它的名字在第二个街区的开头。
仅进行第一次测试(即仅创建标准正则表达式而不是 u32_regex)未检测到内存泄漏。
在测试中添加多个 u32_regex 不会导致更多内存泄漏。
我尝试按照icu 文档使用 u_cleanup() 调用来清理 icu 缓存,请参阅 ICU 初始化和终止部分。
但是我对 icu 库不是很熟悉(实际上我只是在使用它,因为我们想要支持 unicode 的正则表达式支持),并且看不到如何在 ICU 加载 ICU 时调用 u_cleanup() 来实际清理数据提升正则表达式 dll。
只是重申这个问题似乎是: -
在使用可选 icu 支持编译的 dll 中提升正则表达式(我很确定这使用到 icu 的静态链接,但这里可能是错误的)
如果我在测试程序中链接到 icuuc.lib 以便我可以调用 u_cleanup() 这似乎不会影响通过 boost regex 库加载的 ICU 实例所持有的内存(如果这样做会很奇怪)
我在 regex 库中找不到任何调用,这些调用允许我要求它清理我们真正想要调用的 ICU 数据。
c++ - 不断收到错误 LNK2019:未解析的外部符号
我使用的IDE是Visual Studio 2010 Professional,我使用的库是ICU 4C 4.8.1 for Win32 for MSVC10。
我已经按照 Debug 和 Release 的手册重新构建了所有的源代码,并且所有的测试都成功通过了。
然后我按照我使用 Boost 的方式进行操作。
我在C/C++ > Additional Include Directories in Proprieties中包含了\include,这似乎很好。
我还在 Linker > Additional Library Directories 中包含了\ lib。
但是,我不断得到error LNK2019: unresolved external symbol
.
源代码:
错误
c++ - ICU 库的拼写规则(RuleBasedNumberFormat)在哪里?
我使用 ICU 将数字拼写成字符串,例如:
“一百三十四”// 134 使用 en_US 拼写
我的语言环境(vi_VN)的开箱即用拼写规则似乎是错误的
15 变成“mườinăm”而不是“mười” lăm”还有更多错误
,所以我需要编辑规则但不知道在哪里更改
string-formatting - 使用 ICU 将数字格式化为货币以在 Google 柱形图中使用
我正在使用 Google Charts 来制作一个漂亮的柱形图,这实际上是一项非常简单的任务,但我陷入了以下问题:我必须以这种方式格式化垂直轴上显示的值 ->“R$ 1.000,00 ”(对于巴西货币),然后我在googles 文档页面上找到了关于柱状图的信息,它可以提供 ICU 表达式以按照我想要的方式格式化数字,包括货币格式。
这是我能得到的最接近的,但这个表达式给了我:
所以我的两个问题是:
1) 无法显示千位分隔符 2) 无法用“.”替换千位分隔符 和小数分隔符由“,”
在网上搜索了很多关于 ICU 本身的东西,描述了如何通过调用 ICU C++ lib 中的一些方法来实现它,但是在处理 w/google 图表时它显然不可用。
c++ - ICU 字节顺序标记 (BOM)
我正在使用 ICU 的 ustdio 函数将 UnicodeString 对象写入一系列编码的文件,但它似乎没有预先添加 BOM。
我的代码:
当我将 LE 更改为 BE 时,文件编码确实会交换,但是没有 BOM,十六进制编辑器中的输出文件是:
注意:如果我将代码页设置为“UTF-16”,则会有一个 BOM,但是一旦我手动指定字节序,它就会消失。
或者,有没有办法可以将 UnicodeString 写入带有 BOM 的文件?