免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3654 | 回复: 1
打印 上一主题 下一主题

google translation API 输出乱码 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-03-19 10:35 |只看该作者 |倒序浏览
测试代码如下:
  1. <?php

  2. class Google_API_translator {
  3.     public $opts = array("text" => "", "language_pair" => "en|zh-CN");
  4.     public $out = "";

  5.     function __construct() {
  6.         echo "Google Translator API\n(c) 2007 Involutive snc [url]http://www.involutive.com[/url]\n";
  7.         echo "Author: Paolo Ardoino < [email]paolo@involutive.com[/email] >";
  8.     }

  9.     function setOpts($opts) {
  10.         if($opts["text"] != "") $this->opts["text"] = $opts["text"];
  11.         if($opts["language_pair"] != "") $this->opts["language_pair"] = $opts["language_pair"];
  12.     }

  13.     function translate() {
  14.         $this->out = "";
  15.         $google_translator_url = "http://translate.google.com/translate_t?langpair=".urlencode($this->opts["language_pair"])."&";
  16.         $google_translator_data .= "text=".urlencode($this->opts["text"]);
  17.         $gphtml = $this->postPage(array("url" => $google_translator_url, "data" => $google_translator_data));
  18.         $out = substr($gphtml, strpos($gphtml, "<div id=result_box dir=\"ltr\">"));
  19.         $out = substr($out, 29);
  20.         $out = substr($out, 0, strpos($out, "</div>"));
  21.         $this->out = utf8_encode($out);
  22.       return $this->out;
  23.     }

  24.     // post form data to a given url using curl libs
  25.     function postPage($opts) {
  26.         $html = "";
  27.         if($opts["url"] != "" && $opts["data"] != "") {
  28.             $ch = curl_init($opts["url"]);
  29.             curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  30.             curl_setopt($ch, CURLOPT_HEADER, 1);
  31.             curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  32.             curl_setopt($ch, CURLOPT_TIMEOUT, 15);
  33.             curl_setopt($ch, CURLOPT_POST, 1);
  34.             curl_setopt($ch, CURLOPT_POSTFIELDS, $opts["data"]);
  35.             $html = curl_exec($ch);
  36.             if(curl_errno($ch)) $html = "";
  37.             curl_close ($ch);
  38.         }
  39.         return $html;
  40.     }
  41. }
  42. ?>

  43. <?php

  44. $g = new Google_API_translator();
  45. $g->setOpts(array("text" => "hello,world", "language_pair" => "en|zh-CN"));
  46. $g->translate();
  47. echo $g->out;
  48. ?>
复制代码

运行后输出:
  1. Google Translator API
  2. (c) 2007 Involutive snc [url]http://www.involutive.com[/url]
  3. Author: Paolo Ardoino < [email]paolo@involutive.com[/email] >脛茫潞脙拢卢脢脌陆莽
复制代码

怎样修改编码设置才能输出简体中文?有类似的经历的朋友不吝赐教,多谢!
试过  iconv('UTF-8','ASCII//TRANSLIT',$out),依然输出乱码

[ 本帖最后由 alexru 于 2008-3-19 10:37 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2008-03-19 10:44 |只看该作者
搞定了,谢谢大家
echo iconv('UTF-8','ISO-8859-1',$g->out);
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP