在js中通过String.fromCharCode()将16进制转为字符串a后,我将字符串a发送到PHP服务器。
但是将接受到的字符串转回16进制时,发现多了个c2,这是因为一开始在js中转码的时候,有一个16进制是0x85也就是133,大于127了,这个导致了在PHP中转码出错,应该是两者的编码不同导致的。
在如果我使用php中的chr将16进制转为字符串则没有该问题。
但是现在只能用js转码,我该怎么办呢?

解决方案 »

  1.   

    都用utf-8啊 码在所有语言中都是一套的
      

  2.   

    你把js代码拿来看看,你说0x85是怎么加上去的并没有说清楚。js本身并没有这样的机制
      

  3.   

    楼主说127,php应该处理的是ascii码吧,像0x85这种超过了ascii码的,应该是unicode或则其他的码吧,你用php处理传过来的数据的时候,要设置好用哪个码去处理吧。(觉得大概是这个思路,具体靠楼主自己试)
      

  4.   

    这和js没关系,也不要纠结js怎么转换,这和传输协议有关,二进制网络间传输,最保险简单的方式是转化为base64码再传输。
      

  5.   

    那js中怎么转化base64码呢?PHP中接收到后直接是字符串了吗?还是该将base64码再次转化