台灣最大程式設計社群網站
線上人數
1788
 
會員總數:244782
討論主題:188836
歡迎您免費加入會員
討論區列表 >> PHP >> 想將資料轉換為16進位的HEX
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
想將資料轉換為16進位的HEX
價值 : 100 QP  點閱數:805 回應數:4

樓主

大家加油
初學者
799 904
8017 563
發送站內信

請問我想將資料轉換為16進位的HEX,例如:「金賁亨」這三個字希望得到這樣的結果「AAF7B6NA6EB」,可是我的系統跑出來的結果是
「e9 87 91 e8 b3 81 e4 ba a8 」,請問是哪部分有問題呢?
編碼轉換的語法參考
http://nsysumis94.pixnet.net/blog/post/8784467
是呼叫使用以下的函數
function asc2hex($str) {
return chunk_split(bin2hex($str), 2, " ");
}

謝謝



搜尋相關Tags的文章: [ 16進位的HEX ] ,
本篇文章發表於2017-06-07 13:32
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
不錯的參考

彩虹
檢舉此回應
其實這沒有問題耶,

如果你是使用 Notepad++ 編輯器來寫PHP

你檢查一下你的PHP檔案編碼,並透過轉換編碼來查看差異性 (工具列的 【編碼】-> 【轉換至ANSI碼格式】或【轉換至UTF-8碼格式】)

[color=Red]編碼為UTF-8的答案是

金賁亨 -> e98791e8b381e4baa8

編碼為BIG5 (ANSI)的答案是
金賁亨 -> aaf7b64ea6eb

然後我反而不太清楚你的「AAF7B6NA6EB」是怎麼來的,是打錯嗎XD? 跟BIG5的編碼有些取差異


所以 e98791e8b381e4baa8 是正常的,因為你的文件編碼是UTF-8

UTF-8 測試結果


Big5 測試結果



希望有解決您的疑惑~~





本篇文章回覆於2017-06-07 14:22
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

大家加油
檢舉此回應
謝謝~
不好意思,看來我的問題又沒有問到核心...
我的問題是我的網頁是UTF8編碼,那我現在希望中文資料能轉出Big5編碼的16進位,請問該怎麼處理呢?
本篇文章回覆於2017-06-07 15:27
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
最有價值解答

彩虹
檢舉此回應
請搭配 mb_convert_encoding

mb_convert_encoding('金賁亨',"BIG5","UTF-8")

整體如下:

本篇文章回覆於2017-06-07 15:36
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
補充一下知識

UTF-8是用3個字元組合而成做為一個中文字。
BIG5是用2個字元組合而成一個中文字。

所以轉換成hex,會因為不同的編碼產生不同的結果。
本篇文章回覆於2017-06-09 10:08
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.