php - 如何在 PHP 中将 UTF-8 字符串转换为 HEX 代码点?
问题描述
json_encode
我通过as从 UTF-8 字符串中获取 HEX 代码点
substr(json_encode($str), 1, -1);
但是,json_encode
不会转换 ASCII 范围内的字符。例如,
为了
sÆs
我明白了
s\u00C6s
但我想得到
\u0073\u00C6\u0073
解决方案
我将 json_encode 用于多字节字符并将其组装为 ASCII 字符。
function utf8toUnicode($str){
$unicode = "";
$len = mb_strlen($str);
for($i=0;$i<$len;$i++){
$utf8char = mb_substr($str,$i,1);
$unicode .= strlen($utf8char)>1
?trim(json_encode($utf8char),'"')
:('\\u00'.bin2hex($utf8char))
;
}
return $unicode;
}
$str = 'sÆs';
echo utf8toUnicode($str); // \u0073\u00c6\u0073
推荐阅读
- string - 传递给连接的列表不会产生正确的输出
- python - 将灰度图像转换为彩色 RGBA
- ios - SwiftUI | 从另一个 SwiftUI 视图访问 PickerView 选择
- python - 为什么kivy无法导入kivy_clock?
- firebase - Flutter web build 无法在 firebase 上运行 gif
- rust - 正确拆分时 Rust 不允许可变借用
- java - 使用 assertJ 方法 containsOnly() 比较自定义对象的数组
- c++ - c++字符串行恢复到控制台
- swift - 选择器中的持久值更改 SwiftUI 中的视图
- jquery-ui-datepicker - 在 Tabulator 中使用 jQuery datepicker 时如何禁用未来日期?