2011-06-02 35 views
0

我与这两种编码类型的字符串的工作:有什么区别以及如何生成这两种编码?

%ueb08%u8b09%u3c40%u5756%u5ebe%u3440%u408d 
\x26\x04\x9e\x8e\xf9\xd0 

为了产生第一种类型,我发现这个功能:

function encoder(s) 
{ 
    $res = strtoupper(bin2hex($s)); 
    $g = round(strlen($res)/4); 
    if($g != (strlen($res)/4)) 
    $res .= "00"; 
    $out = ""; 
    for($i = 0; $i < strlen($res); $i += 4) 
    $out .= "%u" . substr($res, $i + 2, 2) . substr($res, $i, 2); 
    return $out; 
} 

现在我需要的第一种类型的字符串转换,到第二种类型,我甚至不知道它是什么类型的编码。我怎么能这样做?

回答

1

底部只是在ASCII空间中表示十六进制值的标准表示法。

如果你要的号码0,这是\x00,如果你想10,这将是\x0A,和16(十六进制的10)\x10(15将\x0F

+0

那帮助,谢谢。 – ertaos 2011-06-02 21:57:40

+0

与另一个相同,它是unicode 16bit,%u表示它是unicode,四个字母是十六进制的两个字节。 – 2011-06-02 22:24:17