如何使用php将文本转换为unicode代码点?\ u0054\u0069\u0069\u0073

Try*_*der 2 php regex unicode text

编辑2:我想使用php5将英文单词转换为unicode数字,然后生成为\ u****其中****是unicode数字.

在我原来的问题中,我错误地认为\ u是编码unicode的标准,实际上它只是在JavaScript中被转义(Thankyou Jukka K. Korpela指出这一点).即使我想在PHP中进行转换,转换后的unicode也会在JavaScript中使用.

我尝试了以下选项,但没有运气.deceze的回答虽然做到了,但非常感谢!

我试过的事情

我已经读过我可以使用iconv来做到这一点,但我没有运气,也找不到任何关于如何做的例子.

我也在这里试过Scott Reynen的代码如何在utf-8字符串中获取给定字符的代码点数?但我似乎无法让它发挥作用.当我尝试它时,我将脚本包含在一个文件中

$str='test';
echo utf8_to_unicode($str);
Run Code Online (Sandbox Code Playgroud)

它刚刚响起test.

我也读过我可以使用的

echo json_encode("test");
Run Code Online (Sandbox Code Playgroud)

但我又一次只能test打印到屏幕上.

任何帮助将非常感激.

EDIT1:实际上我认为它们被称为代码单元而不是代码点.

dec*_*eze 10

json_encode几乎适合你,但仅适用于非ASCII字符.所以你需要做的就是手动转换ASCII字符.这是一个在逐个字符的基础上执行此操作的函数:

function utf8ToUnicodeCodePoints($str) {
    if (!mb_check_encoding($str, 'UTF-8')) {
        trigger_error('$str is not encoded in UTF-8, I cannot work like this');
        return false;
    }
    return preg_replace_callback('/./u', function ($m) {
        $ord = ord($m[0]);
        if ($ord <= 127) {
            return sprintf('\u%04x', $ord);
        } else {
            return trim(json_encode($m[0]), '"');
        }
    }, $str);
}
Run Code Online (Sandbox Code Playgroud)