问题标签 [boost-locale]

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.

0 投票
1 回答
325 浏览

c++ - Boost locale normalize 去除字符但没有重音符号

我正在尝试使用 boost 本地库从字符串中去除重音符号。

normalize 函数删除带有重音的整个字符,我只想删除重音。

è -> e 例如

这是我的代码

期望的输出:十一

我的输出:lve

请帮忙

0 投票
2 回答
519 浏览

c++ - 有没有办法在 C++ 中检测汉字?(使用升压)

在一个数据处理项目中,我需要检测中文中的拆分词(中文中的词不包含空格)。有没有办法使用原生 c++ 功能或 boost.locale 库来检测中文字符?

0 投票
2 回答
170 浏览

c++ - 如何为 Boost.Locale 中的数字指定自定义小数分隔符?

我已经多次阅读 Boost.Locale 文档,但仍然找不到这个看似简单的问题的答案:我需要使用特定的语言环境(例如 ru_RU)输出,但使用自定义的小数分隔符(例如点代替逗号)。这可能吗?

对于日期,有允许指定自定义日期时间格式字符串的“ftime”操纵器。但是数字有类似的东西吗?

谢谢!

0 投票
1 回答
154 浏览

boost-locale - 在 Visual Studio 2019 下为调试模型编译时,哪些错误配置可能导致 Boost Filesystem 因访问冲突而失败?

我很难理解为什么我的一些使用 boost 的代码在 Visual Studio 2017 下运行良好,现在却在 Visual Studio 2019 下导致访问冲突。但是,我只在 Debug 构建下遇到此故障。发布构建工作正常,没有问题。

我在构建、环境或代码中设置不正确会导致这样的失败吗?

我的环境:

  • 视窗 10
  • Boost 1.74(动态链接)
  • Visual Studio 2019 v16.7.6
  • 为 C++ x64 编译

我的代码的失败行是这样的:

boost::filesystem::path dir = (boost::filesystem::temp_directory_path() / boost::filesystem::unique_path("%%%%-%%%%-%%%%-%%%%"));

Boost 文件系统中的失败行是这里boost/filesystem/path.hpp

Visual Studio 上报的失败信息如下:

调用堆栈如下所示:

我在整个代码中使用 UTF-8 字符串,因此我将 boost::filesystem 配置为期望 UTF-8 字符串,如下所示:

boost::nowide::nowide_filesystem();

0 投票
1 回答
96 浏览

c++ - boost locale 是否支持 UTF-8 作为基于 char* 的字符串和流的内部编码

在内部,我可以使用 char 或 wchar_t 对我的字符串和流进行应用程序内部编码。char* 可以保存单字节编码数据或多字节编码数据。例如 ascii 和 UTF-8。我可以使用 char8_t、char16_t 或 char32_t 来阐明内部编码。但是 boost locale 还不能正确支持这些字符类型。假设 boost locale 在使用std::basic_string<char>and and and std::basic_fstream<char>and others 时使用 utf-8 作为内部编码是否可以节省?

例子:

0 投票
1 回答
93 浏览

c++ - 尝试读取 json 文件时编码不切换

我有一个file.json编码为 KOI8-R 的 json 文件。

Boost Json 仅适用于 UTF-8 编码,因此我将文件从 KOI8-R 转换为 UTF-8:

但是,无法读取文件..我做错了什么?

更新:

我制作了一个 JSON 文件“test.txt”:

并将其保存在 koi8-r 中。

我有一个代码:

编译,运行并得到以下错误:

然后我使用 boost 语言环境:

编译(g++ main.cpp -lboost_locale),运行并得到以下错误:

0 投票
1 回答
89 浏览

boost - 启用多字节字符集的 MFC 应用程序能否支持 UTF-8 编码字符串?

我有一个启用了多字节字符集的旧版 MFC 应用程序。现在的要求是也支持 UTF-8 字符集。在 Unicode 环境中更改整个应用程序是一项艰巨且冒险的任务。

我找到了支持 UTF-8 转换的 Boost.Locale 库。所以我的问题是,它可以与我现有的多字节设置一起使用吗?或任何其他方式来做到这一点,而无需将整个应用程序转换为 Unicode。因为它使用了很多我不想接触的遗留 Windows API。我的简单要求是很少有函数/方法可以生成和解析 UTF-8 字符。

0 投票
0 回答
43 浏览

c++ - 在多个进程之间共享单个 boost C++ 语言环境对象

目前正在做一个添加i18n语言翻译的项目。

问题是每次启动进程时,它都会加载一个名为MOfiles\de_DE\LC_MESSAGES\msg.mo扩展名为 .mo)的 13 MB 翻译文件,并且大约需要1 秒才能完成。每个新进程都会遭受同样的延迟,并且会降低用户的整体体验。

问题:是否可以在共享内存中创建单个翻译对象,以便任何新进程都可以引用该现有对象并避免延迟?

经过一些简短的研究,我发现了一个 Boost C++示例,它在共享内存中创建了一个向量。
它也可以适用于提升语言环境对象吗?

单进程翻译文件目前加载如下

并调用使用

0 投票
0 回答
38 浏览

c++ - 开始使用 Boost Locale 的翻译

这可能是一个简单的问题,但我一直在努力解决这个问题,这就是为什么我希望你们中的一个可以帮助我。

我正在尝试让 Boost 语言环境的功能发挥translate作用。参考此示例代码:

  • 假设我想翻译成德语。我必须像过去"de"一样locale::global(gen("de"));吗?

  • 我读了一些*.po*.mo文件。有人可以解释一下这一切是如何工作的吗?

提前致谢。

0 投票
0 回答
77 浏览

c++ - 标准 C++ 函数和语言环境之间有什么关系?

以下标准 C++ 函数和语言环境之间的关系是什么

直到现在,每当我使用这些标准功能时,我从来没有想过任何关于语言环境的事情,所以我为什么要为语言环境而烦恼呢?

在阅读stackoverflow时我遇到了这个

在 Linux 上一切正常,因为每个人都使用基于 UTF-8 的语言环境,因此所有传递给主函数的用户输入和参数都将采用 UTF-8 编码。但是您可能仍需要将当前语言环境显式切换为 UTF-8 变体,因为默认情况下 C++ 程序开始使用默认"C"语言环境。*

上面这段话到底想表达什么?根据上述段落,Windows 和 linux 有什么问题?

任何人都可以用简单的话解释一下,最好用一个例子吗?