将 unicode 代码转换为 UTF-8
Converting unicode codes to UTF-8
我在文件中写入了以下字符串:
\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();
输出为:
\u0410\u043d\u0442\u043e\u043d \u0411\u043e\u0440\u0438\u0441\u0435\u043d\u043a\u043e
\u0410\u043d\u0442\u043e\u043d \u0411\u043e\u0440\u0438\u0441\u0435\u043d\u043a\u043e
ĐĐ˝ŃОн ĐĐžŃиŃонкО
Google 帮助您 :) Google 我们相信
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_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;
输出:Антон Борисенко
我在文件中写入了以下字符串:
\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();
输出为:
\u0410\u043d\u0442\u043e\u043d \u0411\u043e\u0440\u0438\u0441\u0435\u043d\u043a\u043e
\u0410\u043d\u0442\u043e\u043d \u0411\u043e\u0440\u0438\u0441\u0435\u043d\u043a\u043e
ĐĐ˝ŃОн ĐĐžŃиŃонкО
Google 帮助您 :) Google 我们相信
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_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;
输出:Антон Борисенко