3

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

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。

它太糟糕了,我必须让它运作良好。ps hunspell+vs2008 c++最新版本

4

1 回答 1

0

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

// 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.exeenvironment pacman -Su mingw-w64-x86_64-hunspell。的内容Makefile如下:

PKGS=hunspell
CFLAGS=$(shell pkg-config --cflags $(PKGS)) -std=gnu++98
LIBS=$(shell pkg-config --libs $(PKGS))
all: main
%: %.cpp
    $(CXX) $(CFLAGS) -o $@ $< $(LIBS)
于 2021-04-09T13:55:13.613 回答