首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hunspell c++和俄语

Hunspell c++和俄语
EN

Stack Overflow用户
提问于 2013-05-15 21:31:15
回答 1查看 479关注 0票数 3

我在使用俄语词典的拼写检查器时遇到了一些问题。问题是我的项目可以很好地处理英语,但如果我要连接俄语并尝试检查我的单词的拼写,它总是返回0(意味着没有结果)。这是我的代码(适用于英语)

代码语言:javascript
复制
char *aff = "c:\\ru_RU.aff";
char *dic = "c:\\ru_RU.dic";
Hunspell *spellObj = new Hunspell(aff,dic);
char *words = "собака"
int result = spellObj->spell(words);

结果是"0“。可能是编码中的问题。我试过UTF-8,KOI8-R字典。当使用UTF-8字典时,它不能读取“单词”,当使用KOI8-R时,它的结果是0。

这太糟糕了,我不得不让它工作得很好。附注:hunspell+vs2008 c++的最新版本

EN

回答 1

Stack Overflow用户

发布于 2021-04-09 21:55:14

新字典通常编码为UTF-8。在MSYS2/mingw64中编译的相同示例使用新的UTF-8字典给出了正确的result=1

代码语言:javascript
复制
// UTF-8 file "main.cpp"
#include <iostream>
#include <hunspell.hxx>

int main()
{
char *aff = "ru_RU.aff";
char *dic = "ru_RU.dic";
Hunspell *spellObj = new Hunspell(aff,dic);
char *words = "собака";
int result = spellObj->spell(words);
std::cout << "result=" << result << std::endl;
return result;
}

使用了预编译包。安装时,需要进入mingw64.exe环境pacman -Su mingw-w64-x86_64-hunspellMakefile的内容如下:

代码语言:javascript
复制
PKGS=hunspell
CFLAGS=$(shell pkg-config --cflags $(PKGS)) -std=gnu++98
LIBS=$(shell pkg-config --libs $(PKGS))
all: main
%: %.cpp
    $(CXX) $(CFLAGS) -o $@ $< $(LIBS)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16566431

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档