看板 PHP 關於我們 聯絡資訊
※ 引述《chobitsppc (無止盡的道路)》之銘言: : 想請問我會從flash接收到一筆資料 : 由utf-8的中文轉成二進制的字串 : 請問我要怎麼把這二進制的字串轉成中文= =? : 感覺編碼相關的好煩雜 : 網路上的資料也是有看沒懂...orz : 負責flash的也還不知道能不能轉成二進制... : 希望能轉不能轉前輩可以解答一下 先確認一件事情,以「我」這個字為例,它的 UTF-8 碼為 e68891, 幾乎大部分的中文字的的 UTF-8 碼長度都是這樣,所以你舉的 01011、0101 等等, 不知道你是隨便打的而已,還是你接收到的資訊根本就有誤?或是並不是 UTF-8 碼? 接下來,假設你收到的是正確的資訊,同樣以「我」這個字為例, 你收到的應該是 e68891,那麼要怎麼以 php 將這串字碼轉變為正確的文字呢? 這樣就可以了,很簡單: echo "\xe6\x88\x91"; 用 hex2bin 函式去轉也可以,不過這個函式沒有內建,要自己建一個: function hex2bin($input) { $len = strlen($input); return pack("H" . $len, $input); } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.165.39.8
chobitsppc :0101是我亂舉例的,flash會把e68891再轉成二進制的 09/16 18:12
chobitsppc :樣子,所以我才說要從二進制轉回去 09/16 18:13
chobitsppc :順便問一下e68891是十六進制嗎? 09/16 18:14
chweng :我覺得你要不要把二進位碼跟二進位制、十六進位制先 09/16 18:47
chweng :搞清楚?或是至少拿出例子來? 09/16 18:48
chobitsppc :呃,原來表達有誤嗎...,我最後收到的會是"二進位碼" 09/16 19:21
chobitsppc :由utf8中文轉成的二進位碼 09/16 19:22
LPH66 :我覺得你想說的應該是raw byte... 09/16 19:38