pspell returns 问号(�)
pspell returns question marks(�)
我尝试使用以下命令在 Ubuntu 可信赖的发行版上安装 pspell:
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';
并且出于某种原因,对于任何给定的单词,它返回 "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 字典中检索数据时出现问题?
这看起来像是编码问题。您应该使用 UTF-8
作为 HTML 内容(检查您的页面 <head>
并检查您是否设置了编码, 但是 您还必须填充您的页面内容编码相同 UTF-8
。如果(这种情况经常发生)您的 PHP 文件不是 UTF8,那么您的编码将不匹配,而是 �
。
由于每个单词检查都返回相同的结果,这让我怀疑传递给 pspell_suggest
函数的值可能已损坏。
我所做的只是告诉 pspell
使用 UTF-8:
$t = pspell_new('he', "", "", "utf-8");
这解决了问题。
我尝试使用以下命令在 Ubuntu 可信赖的发行版上安装 pspell:
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';
并且出于某种原因,对于任何给定的单词,它返回 "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 字典中检索数据时出现问题?
这看起来像是编码问题。您应该使用 UTF-8
作为 HTML 内容(检查您的页面 <head>
并检查您是否设置了编码, 但是 您还必须填充您的页面内容编码相同 UTF-8
。如果(这种情况经常发生)您的 PHP 文件不是 UTF8,那么您的编码将不匹配,而是 �
。
由于每个单词检查都返回相同的结果,这让我怀疑传递给 pspell_suggest
函数的值可能已损坏。
我所做的只是告诉 pspell
使用 UTF-8:
$t = pspell_new('he', "", "", "utf-8");
这解决了问题。