<FORM ACCEPTCHARSET = "utf-8"
这样限定一下客户端传递的数据编码不就OK了?

解决方案 »

  1.   

    ASP之类的总可以把输入转为unicode表示,脚本内处理输入数据就不需要考虑字符集问题了,不知道是如何实现的……
      

  2.   

    可以用unending兄弟的方法.
    也可以用urlencode还有urldecode 函数转码.这样不会有字符问题.
      

  3.   

    谢谢。
    就是说一定要配合html页面才能实现吗?我主要是想通过每个请求的RequestHeader之类的直接判断客户端所提交的数据实体的编码,不知道里面是否有可以利用的环境变量呢?
      

  4.   

    一般你的html页面是什么编码的,你post的数据就是什么编码,
      

  5.   

    如果是从网页表单提交过来的数据,当然好判断其是什么类型编码。但是当用户直接在浏览器里面输入数据呢,怎么判断编码?
    http://www.test.com/test.php?title=你好
    这样的结果肯定是,用户操作系统设置的什么类型编码提交过来的就是什么类型编码。但有无方法可以判断呢?
      

  6.   

    mb_detect_encoding()的原理是根据你设定(或者mbstring默认)的一个编码集检测顺序来判断字符串编码的,例如你设定了ASCII->UTF-8->GBK这样的检测顺序,那么它先检测字符串所有字符是否全在ASCII值域内,如果是,则判定为ASCII,否则继续检测字符串所有字符是否全在UTF-8值域内,是则判定为UTF-8,依此类推,由于字符集的值域之间存在重叠区域,因此检测结果的准确性很大程度上依赖于你所设定的检测顺序(mbstring默认顺序是ASCII->UTF-8)。结合页面,自然可以在页面中指定客户端应该使用何种编码提交数据,问题就是目前还没找到可以不依赖于页面直接通过RequestHeader得到客户端提交的数据使用哪种编码的方法啊。
    (例子就是如楼上说的,直接从地址栏输入的GET参数)