【问题标题】:Google CSE: breaks when I search with special characters like "é"Google CSE:当我使用“é”等特殊字符搜索时中断
【发布时间】:2014-12-05 22:08:33
【问题描述】:

我们已经在我们的网站上安装了自定义搜索引擎。
在我们尝试使用重音字母进行搜索之前,它工作正常。
由于网站是法语的,它有点需要工作......

所以如果我搜索:
“poupee”——工作正常 “普普!” -- 也很好用 “poupée”——不起作用。甚至没有调用在 google 上搜索的实际调用

你可以在这里测试它:
poupée -- 不起作用:
http://www.ckoi.com/recherche.php?q=poup%E9e&sa=&cx=012997159615660210985%3Ask7xitg5ylq&cof=FORID%3A11&ie=ISO-8859-15&oe=ISO-8859-1&siteurl=www.ckoi.com%2F&ref=&ss=1994j797008j8

poupee -- 作品:
http://www.ckoi.com/recherche.php?q=poupee&sa=&cx=012997159615660210985%3Ask7xitg5ylq&cof=FORID%3A11&ie=ISO-8859-15&oe=ISO-8859-1&siteurl=www.ckoi.com%2F&ref=&ss=776j143854j6

假货! -- 作品:
http://www.ckoi.com/recherche.php?q=poupee!&sa=&cx=012997159615660210985%3Ask7xitg5ylq&cof=FORID%3A11&ie=ISO-8859-15&oe=ISO-8859-1&siteurl=www.ckoi.com%2F&ref=&ss=2272j1680258j8

并且自定义引擎已设置为法语。

----- 编辑: 这是html表单,我切换回ISO-8859-1(我的网站的编码)

<div class="search-form">           
    <form class="search-wrapper cf" action="/recherche.php" id="cse-search-box">
        <input type="text" placeholder="Rechercher des extraits audio, articles..." name="q" />
        <button type="submit" class="search-button" name="sa"><i class="icon ion-search"></i></button>
        <input type="hidden" name="cx" value="012997159615660210985:sk7xitg5ylq" />
        <input type="hidden" name="cof" value="FORID:11" />
        <input type="hidden" name="ie" value="ISO-8859-1" original_value="ISO-8859-1" /> <!--value="ISO-8859-15"-->
        <input type="hidden" name="oe" value="ISO-8859-1" original_value="ISO-8859-1" /><!--value="ISO-8859-1"-->
    </form>
    <script type="text/javascript" src="http://www.google.com/cse/brand?form=cse-search-box&lang=fr"></script>
</div>

有人知道我需要做什么吗?

【问题讨论】:

  • 那个代码页可能是问题所在。 ie 参数指向 latin-9,而 oe 指向 latin-1。不知道他们做了什么,但我会用 utf-8 替换它。
  • 感谢您的回复。我尝试将 ie 和 oe 更改为: 但结果也不显示。我们通常使用 ISO-8859-1 作为我们页面上的编码。
  • 您还需要更改页面本身的编码。例如。带有元标记。
  • 我将编码更改为 utf-8 但没有运气:ckoi.com/… 我还注意到,在“好”请求中,有以下形式的调用:google.com/cse?q=poupee&...当我尝试使用重音字母(如 é)时不存在。
  • 您仍有编码问题。检查此链接:ckoi.com/… 我刚刚将拉丁编码的 é=%E9 替换为正确的 utf-8 编码的 é=%C3%A9 并且它工作正常。我猜你的 html 表单还有问题。显示该代码;-)

标签: html forms google-custom-search


【解决方案1】:

我只需定义应该可以正常工作的表单 (accept-charset="utf-8") 的编码。

<div class="search-form">           
    <form class="search-wrapper cf" action="/recherche.php" id="cse-search-box" accept-charset="utf-8">
        <input type="text" placeholder="Rechercher des extraits audio, articles..." name="q" />
        <button type="submit" class="search-button" name="sa"><i class="icon ion-search"></i></button>
        <input type="hidden" name="cx" value="012997159615660210985:sk7xitg5ylq" />
        <input type="hidden" name="cof" value="FORID:11" />
        <input type="hidden" name="ie" value="utf-8" />
        <input type="hidden" name="oe" value="utf-8" />
    </form>
    <script type="text/javascript" src="http://www.google.com/cse/brand?form=cse-search-box&lang=fr"></script>
</div>

有了这个 jsfiddle 你可以实时查看:http://jsfiddle.net/129d21nv/

但是在那个网站上你仍然有一个编码问题,但恕我直言,这是一个不同的问题。

【讨论】:

  • 天啊!就是这样!只需在表单上设置 accept-charset="utf-8" 即可解决问题!而且,无论我为 ie 和 oe 设置 ISO-8859-1 还是 UTF-8,都有效!谢谢!你是一个节省者!
  • 您应该尽快回复 cmets ;-) 不客气!
  • 对我来说,我仍然无法正常工作:(有些浏览器可以,其他浏览器不行
猜你喜欢
  • 2011-11-09
  • 1970-01-01
  • 2013-03-24
  • 2011-12-26
  • 1970-01-01
  • 1970-01-01
  • 2015-08-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多