整个项目编码设置的是GB2312,页面index.php内容如下:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=GB2312">
        <title></title>
    </head>
    <body>
        <form action="char.php" method="post">
            <input type="text" id="str" name="str"/>
            <input type="submit" value="提交"/>
        </form>
        <?php
            echo "广发证劵";
        ?>
    </body>
</html>运行index.php页面时,"广发证劵"输出的结果是:广发证? 
但在文本框中输入,提交页面,在char.php页面输出的结果是:广发证劵
二者输出结果不同,请高人看看这是怎么回事?
char.php页面内容如下:
 echo $_POST["str"];

解决方案 »

  1.   

    在数据库中设置字符编码为GBK
    mysql_query("set names gbk"); //使用GBK中文件编码,防止乱码
      

  2.   

    echo iconv('utf-8', 'gb2312', "广发证劵");试一试
      

  3.   

    整个项目和index.php页面的编码都是GB2312,用echo iconv('utf-8', 'gb2312', "广发证劵");会乱码
      

  4.   

    echo strlen('广发证劵');看看长度
      

  5.   

    我测了,长度为7。楼上的注意,我用的是搜狗输入法,对于'广发证劵',有2中读法,一种是'广发证券'(quan),
    另一种是'广发证劵'(juan)。我用的是后一种。你们也可以在自己的机子上试试,看看和我的问题一样不。
      

  6.   

    楼上的,你用的什么输入法?输入的是'广发证劵'(juan)吗?
    这个问题困扰我有一段时间了,但一直不知道是怎么回事。
    当我把'广发证劵'(juan)保存的数据库时,只保存为'广发证',那个“劵”就没了
    奇怪!
      

  7.   

    quan和juan都试了,我用的也是搜狗
      

  8.   

    将PHP文件另存为时选择编码方式为GB2312
      

  9.   

    <?php
    print_r(unpack('H*', "广发证劵"));
    ?>
    帖出结果
      

  10.   

    回复于:2010-09-26 15:07:07
    <?php
    print_r(unpack('H*', "广发证劵"));
    ?>
    帖出结果
    结果是:Array ( [1] => b9e3b7a2d6a43f ) 
      

  11.   

    输入法问题吧。用windows自带的输入法 输入试试。