如何在PHP中将UTF-16十六进制字符串转换为UTF-8?

jon*_*asl 3 php utf-8 utf-16

我有来自strace的以下输出,我想使用PHP将其转换为UTF-8:

R\00f6dhakev\00e4gen 4
R\00e4ntm\00e4starv\00e4gen 24
K\00d8BENHAVN
Run Code Online (Sandbox Code Playgroud)

我认为上面的字符串是UTF 16 HEX.

jon*_*asl 6

发现以下功能有效:

function utf8_urldecode($str) {

  $str = str_replace("\\00", "%u00", $str);

  $str = preg_replace("/%u([0-9a-f]{3,4})/i","&#x\\1;",urldecode($str));

  return html_entity_decode($str,null,'UTF-8');

}
Run Code Online (Sandbox Code Playgroud)

一些部分来自http://us2.php.net/manual/en/function.urldecode.php