这是编码:\u00d6
这是解码:Ö
我必须使用什么函数将该字符串解码为可读的东西?
\u00d6asdf -> Öasdf
Run Code Online (Sandbox Code Playgroud)
要转换为UTF-8,请执行以下操作:
preg_replace('/\\\\u([0-9a-f]{4})/ie',
'mb_convert_encoding("&#x$1;", "UTF-8", "HTML-ENTITIES")',
$string);
Run Code Online (Sandbox Code Playgroud)
由于这是JSON中使用的转义,另一种选择是json_decode.但是,这也需要在转义之前转义双引号和反斜杠(\uXXXX转义序列除外)并在字符串周围添加双引号.但是,如果字符串确实是JSON编码的并且这是最初激发问题的,那么自然会使用正确的答案json_decode而不是上面的方法.
通常这将是urldecode方法,但它不适用于 unicode 字符,例如您的字符。试试这个:
function unicode_urldecode($url)
{
preg_match_all('/%u([[:alnum:]]{4})/', $url, $a);
foreach ($a[1] as $uniord)
{
$utf = '&#x' . $uniord . ';';
$url = str_replace('%u'.$uniord, $utf, $url);
}
return urldecode($url);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3131 次 |
| 最近记录: |