【发布时间】:2016-02-05 16:44:54
【问题描述】:
问题是我有以下字符串:
$content=$rows["content"];
我从数据库中检索到的。刺痛是波斯语的。
我想显示唯一的 150 个字符。所以我使用了:
$content=substr($content,0,150);
为了表明这仍然继续,我需要显示 3 个点:“...” 所以我做到了:
$content.='...';
当我通过 echo 显示这个字符串时,我添加的 3 个点将出现在最后一行的右侧。 但是波斯语是从右到左的,所以最后一行的左边要出现三个点。
我累了这一个两个,但这个也没有用
$content =iconv(mb_detect_encoding($content, mb_detect_order(), true), "UTF-8", $content);
$content=substr($content,0,150);
$dot='...';
$dot =iconv(mb_detect_encoding($dot, mb_detect_order(), true), "UTF-8", $dot);
$content.=$dot;
【问题讨论】:
-
substr() 不支持 unicode,并将字符串视为简单的字节序列。你不能在不破坏文本的情况下在 unicode 字符串上使用它。这就是为什么有整个
mb_*()函数集,包括mb_substr() -
试试 $content = mb_substr($content,0,150,'utf-8')
-
@MarcB 感谢您的回答。但它还没有工作!
-
@Pooya 感谢您的回答,我按照您说的做了,但仍然无法正常工作,连接是正确的,还是我也必须对其进行某种更改?
-
试试这个 $content.utf8_encode($dot) 看看是否有帮助
标签: php utf-8 concatenation persian