转化成2进制同样不好用。
建议lz可以转换成URL能够识别的字串
urlencode()想要恢复正常
urldecode()

解决方案 »

  1.   

    同意一楼的讲法,二进制没有那么好用
    解决方法: 
    1、用base64_encode函数,解码用base64_decode。
    2、用urlencode函数,解码用urldecode。
      

  2.   

    那么推荐用base64吧,3楼楼主是不对的,二进制更加长,一个中文字符要2个字节,一个字节我也不记得要用多少个二进制数字1、0表示,至少要10个二进制数以上。
      

  3.   

    曾经看到一个例子,好象是唠叨老大写的
    <?php   
    $c=unpack("H*","中国");   
      echo $d=implode('',$c);   //输出:e4b8ade59bbd$s=$d;   
      for($i=0;$i<strlen($s);$i+=4)   
          echo   pack("H4",substr($s,$i,4));  //输出:中国
    ?>但字串中如果有非中文怎么解码啊,比如上面的为“中A国BC”,就不知了
      

  4.   

    lz的确很有闲心
    你不妨就来个加密,看看这里吧,比什么XX老大强
    http://jp.php.net/manual/en/refs.crypto.php
      

  5.   

    都是用base64吧,按道理可以的,可能是strlen($s)这里有问题。中文的长度与英文不相同的,造成不对称,所以混合的字符当长度是奇数时,就有错误了(解码时)
      

  6.   

    的确,base64也不错感谢!但其能生成“/”,也不能直接做文件名,还要进一步替换处理一下
      

  7.   

    1. /同样可以作为文件名被保存
    2. 不需要加密的转换,越简单越好,对系统负载小,而且,会的时候也好说
    3. 如果需要对应http请求,就不能用base64,urldecode是最好的。
    4. 嫌urldecode转换之后太长,那就直接用中文,Linux支持中文很出色,关键看你的系统如何设定。
    5. 转换之后的文件名,对程序、对系统都比较方便而以,但是不转换同样可以用