网站需要利用gettext实现国际化,碰到一个问题,请教大家:  
   
  开发环境是RedHat9+apache2+mysql5+php5    test1.php以utf-8编码保存,在浏览器中打开可以正确显示中文,内容如下:  
   
  <?php  
  echo   "中文";  
  ?>  
   
  test2.php也是以utf-8编码保存,内容如下:  
  <?php  
      putenv("LANG=zh_CN");    
      setlocale('LC_ALL',   "zh_CN");    
      bindtextdomain("test2",   "./locale/");      
      textdomain("test2");    
   
      echo   gettext("chinese");  
  ?>  
   
  我用xgettext生成了test2.po文件,使用的命令如下:  
  xgettext   -C   -d   test2   test2.php  
  然后我用编辑器打开test2.po,把里面的charset设置为utf-8,然后把“chinese”对应的msgstr改为“中文”,保存(utf-8格式)。内容摘抄如下:  
   
  "MIME-Version:   1.0\n"  
  "Content-Type:   text/plain;   charset=utf-8\n"  
  "Content-Transfer-Encoding:   8bit\n"  
   
  #:   test2.php:2  
  msgid   "chinese"  
  msgstr   "中文"  
   
   
  然后用msgfmt生成了test2.mo文件,使用的命令如下:  
  msgfmt   -o   test2.mo   test.po  
   
  最后把test2.po和test.mo复制到./locale/zh_CN/LC_MESSAGES/目录下,重启apache服务器。  
   
   
  在浏览器中打开test2.php,显示乱码。  
   
  当在test2.php中加入:<meta   content="text/html;   charset="gb2312"/>后,能够正确显示中文,此时的test2.php内容如下:  
   
  <meta   content="text/html;   charset="gb2312"/>  
  <?php  
      putenv("LANG=zh_CN");    
      setlocale('LC_ALL',   "zh_CN");    
      bindtextdomain("test2",   "./locale/");      
      textdomain("test2");    
   
      echo   gettext("chinese");  
  ?>  
   
   
  可是我并不想使用gb2312编码(否则很不利于国际化),而且奇怪的是,我每个地方都是使用的utf-8编码,为什么到了mo文件里面还是gb2312的编码呢?  
   
  有什么办法可以让我每个网页都使用utf-8编码,又能使用gettext显示中文?