donglu8549 2017-02-08 07:21
浏览 478
已采纳

PHP输出十六进制字符串“按原样”

I am having a weird problem and have hit a road block.

Background:

I am working with MSSQL database.

The table that I am querying has a "TIMESTAMP" field.

Problem:

When I try to output the data retrieved from this column, I get weird output.

For example, suppose I have the following data saved in the field: 0x000000000ADDAB2F

PHP will output it as: ������

Perhaps it is happening because PHP is trying to convert this string to a number or something.

What I want to do is output the string "AS IS" (i.e I dont want PHP to process it at all, just output the raw data).

I am unable to find a solution that will stop PHP from processing this data.

I am using mssql_* functions to query the data.

What I have tried

As I dont even have a clue of why is it happening at all, I tried to implement whatever I could find on the Google. So far I have tried to convert the number back to its original form.

So I have used utf8_decode, mb_encode_numericentity, mb_decode_numericentity, base_convert, unpack and dechex

None of them do what I am trying to do.

If you are going to suggest converting the TIMESTAMP value to NVARCHAR or something in the SQL Query itself, then please note that this is not possible.

Because I am creating a simple generic query form, where a user will type MSSQL queries in a textarea and will get the results returned in the browser.

So he can type SELECT * FROM table and he should get all columns in the output.

So it is not possible to fix the problem in the query itself, I have to do it in PHP itself.

Any help?

  • 写回答

3条回答 默认 最新

  • douxiapi4381 2017-02-08 07:35
    关注

    Use bin2hex. What PHP is printing is the actual binary value. The 0x.... that you see is a hex representation of the binary data.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部