前面两位表示语言zh表示中文吧-之后的表示地区方言,zh-cn表示中国大陆,zh-hk(中国香港),zh-tw(中国台湾),en-us(美国英国)....总之你用zh-cn判断简体中文就是可以的

解决方案 »

  1.   

    <?
    $language_type = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
    switch ($language_type)
    {
      case "zh-cn":
            $china = "gb2312";
            break;
      ......
      ......
      default: 
            $english = "utf-8";
            break;
    }
    ?>
    我要这样来判断的,楼上的应该行不通吧。
      

  2.   

    。能否只用一个变量名?
    $language_type = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
    switch ($language_type)
    {
      case "zh-cn":
            $lang = "gb2312";
            break;
      ......
      ......
      default: 
            $lang = "utf-8";
            break;
    }
      

  3.   

    但$language_type读出来的值是zh-hk,zh-cn,p=0.5.
    不会等下zh-cn.所以判断总是会跑到default去。
      

  4.   

    在判断之前先这样
    $string5= substr($language_type, 0, 5); 取5位,比如zh-hk
    $string2= substr($language_type, 0, 2); 取2位,比如zh中文有简体和繁体之分,所以要取5位判断,其他语言只需要2位就可以了
      

  5.   

    但$language_type读出来的值是zh-hk,zh-cn,p=0.5.
    =======================
    可以分割到数组中,然后再一一处理。不建议substr()
      

  6.   

    $language      = explode(",", $_SERVER['HTTP_ACCEPT_LANGUAGE'])
    $language_type = $language[0];
      

  7.   

    zh-tw zh-hk zh-mo zh-cn 中文
    en en-us en-gb en-ca 
    ja ja-jp 
    主要是这三个语种,用$_SERVER['HTTP_ACCEPT_LANGUAGE']得到后,它们的位置不同。
    我用的系统读出来是顺序是zh-hk,zh-cn,p=0.5,就可以用
    $language = explode(",", $_SERVER['HTTP_ACCEPT_LANGUAGE'])
    $language_type = $language[0];//得到zh-hk
    日文和英文的就不知道是怎么排的。