2011-06-02 71 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