如何在不编写实际unicode字符的情况下使用unicode字符?

时间:2015-09-24 15:18:09

标签: php unicode utf-8

我只是偶然发现了这段代码:

/**
 * @param $string
 * @return bool
 */
protected static function isRubel($string)
{
    $lString = strtolower($string);

    /**
     * @hint: The characters looking like "p" as in Petra are in fact instances of cyrillic "Er"!
     */

    return strpos($string, 'руб') !== false || strpos($string, 'р') !== false || strpos($lString, 'rub') !== false;
}

提交人提供一个提示非常好,该字符不是p而是unicode符号р;正如我原以为它是p

这段代码可以用不同的方式编写,以便更清楚地表明字符是unicode符号吗?

从某种意义上说,编写unicode表示而不实际编写unicode字符。

我知道我可以定义一个字符串常量CRYLLIC_ER = р,但我正在寻找更通用的解决方案。

1 个答案:

答案 0 :(得分:2)

从PHP 7开始,您可以使用以下语法:

$str = "\u{####}";

在此之前,您可以使用UTF-8字节值使其显而易见:

$str = "\x##\x##";

但我个人会做作者所做的事情,只需在评论中写下来。