zoukankan      html  css  js  c++  java
  • 连连支付,或微信或支付宝支付,商品名称最后一个字乱码,php解决

    function buildRequestForm($para_temp, $method, $button_name) {
    //待请求参数数组
    $para = $this->buildRequestPara($para_temp);
    $sHtml = "<meta http-equiv='content-type' content='text/html; charset=utf-8'><form id='llpaysubmit' name='llpaysubmit' action='" . $this->llpay_gateway_new . "' method='" . $method . "'>";
    $sHtml .= "<input type='hidden' name='req_data' value='" . $para . "'/>";
    //submit按钮控件请不要含有name属性
    // $sHtml = $sHtml . "<input type='submit' value='" . $button_name . "'>";
    $sHtml = $sHtml . "</form>";
    $sHtml = $sHtml."<script>document.forms['llpaysubmit'].submit();</script>";
    return $sHtml;
    }
    原因参考了以下
    http://www.360doc.com/content/11/1125/09/8157240_167208721.shtml
    =&gt;任意给定的3个汉字 <br>=&gt;UTF-8使用9个bytes编码之(123|456|789) <br>=&gt;这9个bytes通过网络传给tomcat <br>=&gt;tomcat认为这9个字节是gbk编码(因为你配置了tomcat) <br>=&gt;gbk汉字编码规则12|34|56|78|9 <br>=&gt;构建string时<strong>至少</strong>最后一个字节不能正确解析为汉字,此时使用?代替 <br>=&gt;在对这个至少带一个问号的string.getBytes("gbk")时,肯定将出现问号ascii码(63)的byte <br>=&gt;以utf-8构造string时,遇到63的地方肯定输出? <br>=&gt;产生了你说的现象 <br><br>


    需要在form前面加上编码,就可以了.还有别的要
    <meta http-equiv='content-type' content='text/html; charset=utf-8'>



    还有utf-8的字符截取问题,截取的长度参考https://www.cnblogs.com/secondtononewe/p/6132923.html





  • 相关阅读:
    《Flutter实战入门》下拉刷新组件的使用方法
    百度HTTPS认证失败解决方法
    unity踩过的音频坑
    如何解决flutter中gradle慢的问题
    如何在ubuntu里面关掉后台的meteor
    ruby生成随机成绩
    Gemfile分平台加载gem
    sublime text2在windows中以命令行启动
    右键添加 CMD 命令提示符
    修复sublime text系统右键菜单
  • 原文地址:https://www.cnblogs.com/jackduan/p/8334240.html
Copyright © 2011-2022 走看看