本帖最后由 weblanmp 于 2012-07-19 14:59:45 编辑

解决方案 »

  1.   

    单独执行 add_post.php 文件插入中文乱码吗?
      

  2.   

    encodeURI($('#bb').val()); 这样,把可能带中文的变量都encodeURI
      

  3.   

    朋友,你的意思是
    $stmt->execute(array(":mbname"=>“中文”, ":mbeng"=>“英文”));
      

  4.   

    本帖最后由 xuzuning 于 2012-07-19 15:12:43 编辑
      

  5.   

    真没注意,你用 escape函数处理了提交内容。
    请删去escape函数。因为这个函数在不同的浏览器中表现不一样
      

  6.   

    js去掉escape,php中直接输出aa的内容看是什么样
      

  7.   

    你贴出 print_r($_POST); 的结果给我们看看
      

  8.   

    如果用ajax返回php中提交的数据则非乱码,但存的就是乱码
      

  9.   

    本帖最后由 xuzuning 于 2012-07-19 15:42:48 编辑
      

  10.   

    htm页
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml"><head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
    <title>无标题 1</title></head><body>
    <form action="xx/test.php" method="post">
    <input type="text" id="aa" name="aa"/><br/>
    <input type="text" id="bb" name="bb"/><br/>
    <input type="submit" value="ok"/>
    </form>
    </body></html>php页
    <?php
                        header("Content-Type:text/html;charset=utf-8"); 
                        date_default_timezone_set("PRC"); 
                        echo "<pre>";
                        print_r($_POST);
                        echo "</pre>";
    ?>
    提交的结果如下,没出现aa
    Array
    (
        [bb] => krystal
    )
      

  11.   

    朋友你的PDO设置解决了问题,谢谢!
    同时问一下,小弟不太会用PDO,你能用白话解释一下上句的意思吗?
      

  12.   

    意思是,用utf8编码格式对数据库进行读写
      

  13.   

    因为你用的不是框架,你每次都重新PDO所以,这一句你每次都要手动写,而框架其实也是每次都执行这个,不过不用你每次手写而已,你可以把你的文件编码与你的数据库设置编码统一,如此即可
      

  14.   

    问题解决了就好!在实例化 PDO 时附加的参数 array(PDO::MYSQL_ATTR_INIT_COMMAND => "set names utf8")
    表示的意思是:连接mysql成果后,立即执行 set names utf8 指令,即将通讯用的字符集设为 utf-8由于 mysql 数据库都是独立的,公共的。所以打不大可能就只按你需要的参数被安装
    所以使用时声明一下字符集是很有必要的mysql 对于 PDO 就属于个性化的东西了。对于声明字符集,他需要执行 sql 指令,要是 oralce 就是在 dsn 中声明了