【问题标题】:How to convert a UTF-8 string to HEX codepoint in PHP? [duplicate]如何在 PHP 中将 UTF-8 字符串转换为 HEX 代码点? [复制]
【发布时间】:2020-05-13 06:34:15
【问题描述】:

我通过 json_encode as 从 UTF-8 字符串获取 HEX 代码点

substr(json_encode($str), 1, -1);

但是,json_encode 不会转换 ASCII 范围内的字符。例如,

对于

sÆs

我明白了

s\u00C6s

但我想得到

\u0073\u00C6\u0073

【问题讨论】:

标签: php unicode utf-8


【解决方案1】:

我将 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

【讨论】:

    猜你喜欢
    • 2011-12-05
    • 1970-01-01
    • 2014-07-03
    • 2015-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-16
    相关资源
    最近更新 更多