chr()UTF-8编码问题

时间:2013-03-10 08:16:31

标签: php utf-8 character-encoding

我用utf-8编码了所有内容。所有非ascii字符都可以正常工作,但是当我使用php的chr()函数时会出现问题。

该行正常(带±字符)

echo '<a class="page_contents_right_cat" href="/page-contents/">Top ±300</a>';

但它没有,并且显示出无法识别的角色。

echo '<a class="page_contents_right_cat" href="/page-contents/">Top '. chr(241) .'300</a>';

如何解决这个问题?有什么帮助吗?

3 个答案:

答案 0 :(得分:2)

使用等效的HTML实体,可以是&#177;&plusmn;

答案 1 :(得分:2)

来自chr的手册页:

Returns a one-character string containing the character specified by ascii.

来自comments on that page

<?php
/**
 * Return unicode char by its code
 *
 * @param int $u
 * @return char
 */
function unichr($u) {
    return mb_convert_encoding('&#' . intval($u) . ';', 'UTF-8', 'HTML-ENTITIES');
}
?>

在任何地方提问之前,你真的应该看看手册。

答案 2 :(得分:0)

您需要使用UTF-8字符代码而不是241。

对于±使用代码177: http://unicode-table.com/ru/#00B1

并将其转换为多字节。

摘要将如下所示:

mb_convert_encoding(chr(177),'UTF-8')