Предложения NHunspell для не-ANSI (?) Символов

Я попробовал пакет NHunspell NuGet следующим образом:

var hunspell = new NHunspell.Hunspell(@"AffPath", @"DicPath");
hunspell.Add("Upadeṣasāhasrī");

var suggestions = hunspell.Suggest("Upadesasahasri");
Console.WriteLine(suggestions.First());

К сожалению, предложение гласит: "Упадэ? Асахасри". "S с точкой ниже" возвращается как вопросительный знак, в то время как "a с макроном" и "i с макроном" возвращаются как a и i соответственно.

Насколько я знаю, нативная библиотека Hunspell полностью поддерживает Unicode. Поэтому я полагаю, что слой NHunspell C# что-то ломает. Исходный код выглядит так:

internal delegate IntPtr HunspellSuggestDelegate(IntPtr handle, [MarshalAs(UnmanagedType.LPWStr)] string word);


IntPtr strings = MarshalHunspellDll.HunspellSuggest(this.unmanagedHandle, word);

int stringCount = 0;
IntPtr currentString = Marshal.ReadIntPtr(strings, stringCount * IntPtr.Size);

 while (currentString != IntPtr.Zero)
 {
     ++stringCount;
     result.Add(Marshal.PtrToStringUni(currentString));
     currentString = Marshal.ReadIntPtr(strings, stringCount * IntPtr.Size);
 }

Я вообще не эксперт по сортировке, но UnmanagedType.LPWStr и Marshal.PtrToStringUni, похоже, учитывают Unicode. Тем не менее, это явно не работает. У кого-нибудь есть предложение (каламбур)?

Спасибо Томас

0 ответов

Другие вопросы по тегам