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

2024-03-10

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

R\00f6dhakev\00e4gen 4
R\00e4ntm\00e4starv\00e4gen 24
K\00d8BENHAVN

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


发现以下功能有效:

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');

}

部分零件来自https://www.php.net/manual/en/function.urldecode.php https://www.php.net/manual/en/function.urldecode.php

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐