2011-06-30 47 views
1

我在某些字符串上使用php函數bin2hex,其中一個字符有÷(Dec:247,Hex:f7)。php bin2hex函數問題

但是當我嘗試:

echo bin2hex('÷'); 

我得到:

c3b7 

的第一個問題是,添加了C3的性格和我不知道它從何而來(C2也被添加在其他角色之前)。

第二個也是主要的問題,php給我的十六進制字符串「b7」作爲分標誌÷的表示,但是b7代表·而不是÷。

任何人都知道這是怎麼回事?

回答

3

您的源代碼似乎是Unicode編碼的,因此您的編輯器以unicode(例如UTF-8)編碼「÷」。 「c3b7」是'÷'的雙字節編碼形式(見here)。確保你的源代碼是ASCII編碼的,以獲得你想要的效果。

+0

很多人都會被任何形式的UTF弄糊塗。 UTF-8 UTF-16LE UTF-16BE,UTF-32LE或UTF-32BE。 – Rahly

+0

如何將我的php保存爲ASCII編碼?我在linux上使用gedit。我也嘗試從控制檯使用'root:〜$ php -r「echo bin2hex('÷');」'和我得到相同的輸出:c3b7。 – riviraz

+0

@riviraz可能會看看http://php.net/manual/en/function.utf8-decode.php – Manhim