Php 将unicode代码转换为UTF-8

Php 将unicode代码转换为UTF-8,php,unicode,encoding,Php,Unicode,Encoding,我在文件中写入了以下字符串: \u0410\u043d\u0442\u043e\u043d \u0411\u043e\u0440\u0438\u0441\u0435\u043d\u043a\u043e 我想用UTF-8可读字符替换它。我该怎么做 文件本身是UTF-8格式的。unicode代码中的字符串是西里尔字母 我试过utf_encode()、json_decode()、mb函数……什么都没用 编辑: 这就是我尝试过的: echo html_entity_decode(preg_replac

我在文件中写入了以下字符串:

\u0410\u043d\u0442\u043e\u043d \u0411\u043e\u0440\u0438\u0441\u0435\u043d\u043a\u043e
我想用UTF-8可读字符替换它。我该怎么做

文件本身是UTF-8格式的。unicode代码中的字符串是西里尔字母

我试过utf_encode()、json_decode()、mb函数……什么都没用

编辑:

这就是我尝试过的:

echo html_entity_decode(preg_replace("/U\+([0-9A-F]{4})/", "&#x\\1;", '\u0410\u043d\u0442\u043e\u043d \u0411\u043e\u0440\u0438\u0441\u0435\u043d\u043a\u043e'), ENT_NOQUOTES, 'UTF-8') . '<br>';
echo utf8_encode('\u0410\u043d\u0442\u043e\u043d \u0411\u043e\u0440\u0438\u0441\u0435\u043d\u043a\u043e') . '<br>';
echo json_decode('"' . '\u0410\u043d\u0442\u043e\u043d \u0411\u043e\u0440\u0438\u0441\u0435\u043d\u043a\u043e' . '"'); 
        die();

我们信任谷歌

function decodeUnicode($s, $output = 'utf-8') 
{ 
    return preg_replace_callback('#\\\\u([a-fA-F0-9]{4})#', function ($m) use ($output) { 
        return iconv('ucs-2be', $output, pack('H*', $m[1])); 
    }, $s); 
} 

echo decodeUnicode('\u0410\u043d\u0442\u043e\u043d \u0411\u043e\u0440\u0438\u0441\u0435\u043d\u043a\u043e', 'windows-1251');
结果:

Антон Борисенко

使用
json\u decode
函数:

<?php

$str = '\u0410\u043d\u0442\u043e\u043d \u0411\u043e\u0440\u0438\u0441\u0435\u043d\u043a\u043e';
$str = json_decode('"' . $str . '"');

header('Content-Type: text/plain; charset=utf-8');
echo $str;

我真的不知道这些编码:D结果实际上是
Ŕí328;îîîđîĺęî
它在windows-1251中给出了答案,编码了它的2个参数的函数。省略它,让utf-8将参数更改为utf-8输出
它在我的本地服务器上工作,没有其他地方:)我今晚会试试谢谢!没有标题的任何其他方法?后来我需要将其写入文件。@khernik:splash58找到了另一个方法,您得到的字符串是有效的,但浏览器理解它的方式是错误的:默认情况下,它不会假定它是UTF-8,这就是为什么我添加了头,以使浏览器理解这是一个UTF-8字符串。您可以将其保存到文件中,而不必担心该头。
<?php

$str = '\u0410\u043d\u0442\u043e\u043d \u0411\u043e\u0440\u0438\u0441\u0435\u043d\u043a\u043e';
$str = json_decode('"' . $str . '"');

header('Content-Type: text/plain; charset=utf-8');
echo $str;