pspell возвращает вопросительные знаки ()

Я попытался установить pspell в надежном дистрибутиве Ubuntu с помощью следующих команд:

sudo apt-get install libpspell-dev sudo apt-get install php5-pspell sudo apt-get install aspell-he

Похоже, что процесс завершился успешно, поскольку в процессе установки не было возвращено ни одной ошибки.

Однако, когда я пытаюсь сделать это в действии, я получаю массив знаков вопроса ():

pspell_config_create("he");
$t = pspell_new('he');

$suggestions = pspell_suggest($t, 'דבל');


return view('master', compact('suggestions')); 
// the above line can be swapped with"
// print_r($suggestions);
// and the result stays the same

Причина, по которой я использовал представление, заключается в том, что, поскольку я подумал, что, возможно, веб-странице нужен набор символов, для этого я использовал структуру документа HTML5, однако результат остался прежним.

Моя HTML-разметка:

<!doctype html>
<html lang="he">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    סתם טקסט לבדיקה
    <?php print_r($suggestions); ?>
</body>
</html>

Результат, возвращаемый из этого:

סתם טקסט לבדיקה Array ( [0] => � [1] => � [2] => � [3] => � [4] => � [5] => � [6] => � )

Я также провел другой тест, где я пытался сделать:

return pspell_check($t, 'הגדא') ? 'there is' : 'nope';

И по какой-то причине для любого данного слова оно вернулось с "нету", что означает, что pspell_check возвращенный false

Есть идеи, как это исправить?

Редактировать:

При попытке получить длину результатов:

<!doctype html>
<html lang="he">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
@foreach($suggestions as $suggestion)
    {{ strlen($suggestion) }} <br>
@endforeach
</body>
</html>

Результат:

1 
1 
1 
1 
1 
1 
1 

Это означает, что, возможно, возвращенные результаты из pspell_suggest метод имел проблемы с извлечением данных из словаря Aspell?

2 ответа

Решение

Поскольку каждая проверка слова возвращалась с одинаковыми результатами, я подозревал, что, возможно, значение, которое передается pspell_suggest функция повреждена.

Я просто сказал pspell использовать UTF-8:

$t = pspell_new('he', "", "", "utf-8");

Это решило проблему.

Это похоже на проблему кодирования. Вы должны использовать UTF-8 для содержимого HTML (проверьте свою страницу <head> и проверьте, если вы установили кодирование, НО также вы должны заполнить свою страницу с содержанием, закодированным в том же UTF-8, Если (что может часто случиться) ваш файл PHP не является UTF8, то у вас будет несовпадение кодировки и вместо.

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