编辑2:我想使用php5将英语单词转换为Unicode数字,然后生成为''u* * * * ,其中* * * *是Unicode数字。
在我最初的问题中,我错误地认为''u是编码Unicode的标准,而实际上它只是在JavaScript中被转义(感谢Jukka K. Korpela指出这一点)。即使我想在PHP中进行转换,转换后的Unicode也要在JavaScript中使用。
我尝试了以下选项,但没有运气。 Deceze的回答不过成功了,非常感谢!
我尝试过的事情
我读过我可以使用iconv来做到这一点,但我没有运气,也找不到任何关于如何做的例子。
我也在这里尝试了斯科特·雷宁的代码 如何获取 utf-8 字符串中给定字符的代码点号? 但我似乎无法让它工作。当我尝试它时,我将脚本包含在一个文件中
$str='test';
echo utf8_to_unicode($str);
它只是回荡在test
.
我也读过我可以使用
echo json_encode("test");
但同样,我只test
打印到屏幕上。
任何帮助将不胜感激。
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);
}