mysql 中字段十六进制 转 汉字
我想让十六进制的字段 select后显示出来的是正常的
这个怎么处理呢? 谢谢

解决方案 »

  1.   

    这个最好发到MYSQL版去,这儿的牛人们大都对MYSQL不甚精通,别耽误了.
      

  2.   

    要先做十六进制转十进制的函数,SQL是用nchar(),你到Mysql版问下看.
      

  3.   

    mysql> select hex('字符');
    +-------------+
    | hex('字符') |
    +-------------+
    | D7D6B7FB    |
    +-------------+
    1 row in set (0.00 sec)mysql> select char(0xD7,0xD6,0xB7,0xFB);
    +---------------------------+
    | char(0xD7,0xD6,0xB7,0xFB) |
    +---------------------------+
    | 字符                      |
    +---------------------------+
    1 row in set (0.00 sec)
      

  4.   

    或者直接mysql> select 0xD7D6B7FB;
    +------------+
    | 0xD7D6B7FB |
    +------------+
    | 字符       |
    +------------+
    1 row in set (0.00 sec)
      

  5.   

    select sid,cid,hex(data_payload) FROM data;出来的不行呀
    成这样了 是十进制 我想要的是可以看的数据 解析的
      

  6.   

    楼上没仔细看4楼的例子啊。hex('字符'); ==> D7D6B7FB
    char(0xD7D6B7FB) ==> '字符'
      

  7.   

    楼上没仔细看4楼的例子啊。hex('字符'); ==> D7D6B7FB
    char(0xD7D6B7FB) ==> '字符'
      

  8.   

    select sid,cid,char(data_payload) from data
    这样是乱码呀
      

  9.   

    data_payload是什么数据类型?
    请提供例子,否则别人只能根据自己的环境告诉你一个思路。
      

  10.   

    data_payload      类型:text    字符集 :latin1     
    4142434445464748494A4B4C4D4E4F5051525354555657414243444546474849
    这个是它的一条内容
      

  11.   

    000 : 47 45 54 20 2F 69 6E 73 74 61 6C 6C 2F 33 2F 25   GET /install/3/%
    010 : 45 38 25 41 46 25 39 37 25 45 38 25 41 46 25 38   E8%AF%97%E8%AF%8
    020 : 44 2E 71 70 79 64 20 48 54 54 50 2F 31 2E 31 0D   D.qpyd HTTP/1.1.
    030 : 0A 41 63 63 65 70 74 3A 20 2A 2F 2A 0D 0A 43 61   .Accept: */*..Ca
    040 : 63 68 65 2D 43 6F 6E 74 72 6F 6C 3A 20 6E 6F 2D   che-Control: no-
    050 : 63 61 63 68 65 0D 0A 43 6F 6E 6E 65 63 74 69 6F   cache..Connectio
    060 : 6E 3A 20 63 6C 6F 73 65 0D 0A 48 6F 73 74 3A 20   n: close..Host: 
    070 : 64 69 63 74 2E 70 79 2E 71 71 2E 63 6F 6D 0D 0A   dict.py.qq.com..
    080 : 50 72 61 67 6D 61 3A 20 6E 6F 2D 63 61 63 68 65   Pragma: no-cache
    090 : 0D 0A 52 61 6E 67 65 3A 20 62 79 74 65 73 3D 35   ..Range: bytes=5
    0a0 : 32 34 32 38 38 2D 0D 0A 52 65 66 65 72 65 72 3A   24288-..Referer:
    0b0 : 20 68 74 74 70 3A 2F 2F 64 69 63 74 2E 70 79 2E    http://dict.py.
    0c0 : 71 71 2E 63 6F 6D 2F 0D 0A 55 73 65 72 2D 41 67   qq.com/..User-Ag
    0d0 : 65 6E 74 3A 20 4D 6F 7A 69 6C 6C 61 2F 34 2E 30   ent: Mozilla/4.0
    0e0 : 20 28 63 6F 6D 70 61 74 69 62 6C 65 3B 20 4D 53    (compatible; MS
    0f0 : 49 45 20 36 2E 30 3B 20 57 69 6E 64 6F 77 73 20   IE 6.0; Windows 
    100 : 4E 54 20 35 2E 30 29 0D 0A 0D 0A                  NT 5.0)....
      

  12.   

    这个只能在你的C程序中处理了。需要逐字节处理。或者在MySQL中写个自定义函数来处理。不如C中直接处理比较方便。
      

  13.   

    用 unhexselect unhex('4142434445464748494A4B4C4D4E4F5051525354555657414243444546474849')--------
    ABCDEFGHIJKLMNOPQRSTUVWABCDEFGHI
      

  14.   


    wselect sid,cid,unhex(data_payload) from data; 
    怎么有的是乱码呀
    h885蒿媅聂V?梖測x?韴轿cCj?塞?lf呉9悵<磱\餢L~K囌d燤{X?皫酙鱢釀u轇瀱?xXKXe/岴?G1{G|詌~L21\胉?n薙,\枵?蠪瑒?,熌yDエ?7s#S?fZ淈@A鄸1咱蝰翮漋認?释 ▏?睡屬釣q崲浙A[~0Gi﹋ 棖鴙伇嶌粼U$}卞0
      

  15.   

    data_payload      类型:text    字符集 :latin1 
      

  16.   

    latin1字符集什么都可以存,当然包括乱码. 里面存什么东西,只有你的应用才知道.还是依靠客户端软件吧