簡體   English   中英

ICU與C ++中的Boost Locale

[英]ICU vs Boost Locale in C++

我正在考慮使用ICU或Boost Locale。

各自的優點和缺點是什么?

我知道兩者都使用ICU,但是ICU被Boost Locale隱藏。 根據Boost Locale的基本原理頁面 :“......整個ICU API隱藏在不透明指針之后,用戶無法訪問它。”

在比較這些庫時,請考慮C ++ 11中的新Unicode功能。

ICU是非常好的庫,但它有缺點:

  1. API在現代C ++設計方面非常糟糕,並且與標准C ++庫不兼容
  2. 它以UTF-16為導向
  3. 它的消息轉換工具遠非完美,這就是Boost.Locale使用Gettext模型的原因

請參閱: http//www.boost.org/doc/libs/1_49_0/libs/locale/doc/html/rationale.html#why_icu

Boost.Locale以C ++方式進行本地化,並允許使用除ICU之外的其他后端(當然ICU更好),因此在許多情況下Boost.Locale為您提供了更好的本地化替代方案,因為它更簡單,專為現代C ++而設計更容易使用。

當然,如果您需要Boost.Locale不支持的非常復雜的算法,或者您的應用程序所做的全部是Unicode處理,那么ICU可能會更好,除了Boost.Locale更適合本地化C ++應用程序。

Boost.Locale使用ICU作為其默認后端。 Boost.Locale也可以使用其他一些后端 您可以將Boost.Locale視為更好的ICU接口。

ICU由國際化專家設計,而boost則由C ++程序員設計。

雖然強大而優雅的C ++,但是增強了很多國際化的錯誤。 現在,boost是一個很大的庫集合,有些比其他的更好。 但是ICU在整個過程中都很穩固,除了微軟之外,它幾乎被所有人用作基礎。

因此,如果您想要穩固的國際化,請選擇ICU。 如果你想要尖端的C ++(但是我有點搖搖欲墜),那就去吧。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM