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)
| 归档时间: |
|
| 查看次数: |
6172 次 |
| 最近记录: |