Как их расшифровать?
鳠, ???? и другие
Ответы (3)
Это ссылки на символы сущностей XML.
Вы можете декодировать их вместе с остальной частью вашего XML с помощью анализатора XML.
&
- это ссылка на сущность, ссылающаяся на сущность с именем amp.
- person Gumbo; 14.11.2010
Что вы имеете в виду, когда говорите «декодировать»? Они представляют символы Юникода, представленные этими двумя шестнадцатеричными числами. Это довольно просто, так что вы, должно быть, просите что-то еще.
Вы спрашиваете, что известно об этих кодовых точках? Это может помочь:
$ uniprops 9ce0 ee839
U+9CE0 ‹鳠› \N{ U+9CE0 }:
\w \pL \p{L_} \p{Lo}
All Any Alnum Alpha Alphabetic Assigned
InCJKUnifiedIdeographs L Lo Gr_Base Grapheme_Base Graph
GrBase Han Hani ID_Continue IDC ID_Start IDS Ideo
Ideographic Letter L_ Other_Letter Print UIdeo
Unified_Ideograph Word XID_Continue XIDC XID_Start XIDS
U+EE839 ‹U+EE839› \N{ U+EE839 }:
\pC \p{Cn}
All Any InNoBlock C Other Cn Unassigned Zzzz Unknown
Таким образом, вторая кодовая точка в настоящее время не назначена, но первая находится в блоке CJK Unified Ideographs.
Было ли что-то еще, что вас интересовало?
Как отмечают другие, у вас, вероятно, есть ссылки на символы Unicode. Предполагая, что другие символы в вашем вводе уже являются действительными UTF-8, вы можете преобразовать ссылки на UTF-8 примерно так (я предполагаю, что PHP, как вы спрашивали об этом в соответствующем вопросе)
//take 1-4 byte hex string, convert to UTF-8 byte sequence
function hex2utf8($hex)
{
//pad to 8 hex digits (32 bits)
$hex=str_pad($hex, 8, '0',STR_PAD_LEFT);
//build binary data octet by octet
$decode='';
while (!empty($hex))
{
$byte=substr($hex,0,2);
$hex=substr($hex,2);
$decode.=chr(hexdec($byte));
}
//binary data is UTF-32, convert it to UTF-8
return iconv('UTF-32BE', 'UTF-8', $decode);;
}
function convertReferencesToUTF8($str)
{
return preg_replace('~&#x([0-9a-f]+);~ei', 'hex2utf8("\\1")', $str);
}
$encoded="Unicode references 鳠, 󮠹";
$utf8=convertReferencesToUTF8($encoded);
Вроде много кода, может быть, кто-то подскажет что-нибудь попроще.