鳠, ? и другие - PullRequest
       65

鳠, ? и другие

2 голосов
/ 14 ноября 2010

Как их декодировать?

Ответы [ 3 ]

0 голосов
/ 14 ноября 2010

Что вы имеете в виду, когда говорите «декодировать»?Они представляют символы Unicode, представленные этими двумя шестнадцатеричными числами.Это довольно просто, поэтому вы, должно быть, спрашиваете что-то еще.

Вы спрашиваете, какие вещи известны об этих кодах?Это может помочь:

$ 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.

Было ли что-то еще, что вас интересовало?

0 голосов
/ 14 ноября 2010

Как отмечают другие, у вас, вероятно, есть ссылки на символы Юникода.Предполагая, что другие символы в вашем вводе уже являются допустимыми 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);

Это кажется много кода, может быть, кто-то еще предложит что-то более простое.

0 голосов
/ 14 ноября 2010

Это XML сущности символьные ссылки.

Вы можете декодировать их вместе с остальной частью вашего XML с помощью анализатора XML.

...