【发布时间】:2015-07-27 13:01:52
【问题描述】:
我想拆分带有重音符号的 hurgarian 字符串。 现在我使用这段代码:
if(strlen($row['title'])<=20)
{
echo $row['title'];
}
else
{
echo substr($row['title'], 0, 17)." ...";
}
我使用 latin2_hungarian_ci 编码将这些数据存储在数据库中,并在 php 文件中使用字符集。在 PHP 和 HTML 部分:
header('Content-Type: text/html; charset=utf-8');
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
但是如果最后一个字符是非英文字符(é,á,ö,ü,ó,ő,ú,ű,í),这样就不会显示得很好。针对这个字符出现了一个符号。 如果我不使用 substr,只需写出全部内容,一切都很好。
现在例如: A végzet erekly... 或 Északi széless...
我无法理解这个 substr,因为在我的示例中,其中一个写了 15 个字符和那个 simbol,而另一个写了 16 个字符和那个 simbol。
如何写出所有字符的前 x 个字符?
【问题讨论】:
-
问题不在于子字符串,而在于
$row['title']中的文本。将您的数据库编码为UTF-8。 -
看看
mb_substr()。 -
我尝试了 utf-8 数据库编码和
mb_substr(),但没有任何反应。
标签: php string substr non-ascii-characters