Php 如何使用unicode字符而不写入实际的unicode字符?

Php 如何使用unicode字符而不写入实际的unicode字符?,php,unicode,utf-8,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"! *

我刚刚偶然发现了以下代码:

/**
 * @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符号
crmk_
;正如我假设的那样,这是一个
p

为了更清楚地表明该字符是unicode符号,是否可以对该代码进行不同的编写

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


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

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

$str = "\u{####}";
在此之前,您可以使用UTF-8字节值使其非常明显:

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

但就我个人而言,我会像作者所做的那样,把它写在评论中。

可能是重复的^?不过,使用常量。PHP不支持unicode,所以字符实际上是用UTF-8编码的。有一种简单的方法可以将unicode转义字符转换为UTF-8,不过,您可以使用
json\u解码(“\u0440”)
。顺便说一句,这是你的特殊
p
的代码。@Havenard,这是RC链接中的内容,属于重复内容,n'est-ce-pas?如果是,那么RC发布的内容将是重复内容,n'est-ce-pas?我不会像作者那样做。只要用一个劣质的应用程序错误地打开/保存一次代码块,就可以打破这段代码。@Mr.Llama,我在这里工作的是一个“劣质的应用程序”,这样做总是会对单元测试产生影响,并且代码评审中会出现更改。如果你在一家不那么勤奋的商店工作,我同意你的看法。。。但是,我们依赖于过程和工具,并且喜欢嵌入Unicode=.L.LAMA来进行Web开发,我认为不支持Unicode是程序中致命的、破坏性的缺陷。尤其是在文本或HTML编辑器中。我绝对不愿意写
caf\xc3\xa9
而不是
café
。@埃弗特显然是我在寻找的,接受的答案不是你个人的意见;)