encodage entre un formulaire XHTML et javascript
Bonjour,
J'essaye de reproduire cet exemple dans un site :
http://ajax-apis.appspot.com/two-page-search-alt
Il s'agit de mettre en place une recherche google personnalisée, mais j'ai un problème quant aux accents, bien que tout fonctionne dans l'exemple et que les codes soient à mon sens similaires.
Mon formulaire:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| <script type="text/javascript">
function inputFocus() {
document.getElementById('query-input').style['background'] = '';
}
function inputBlur() {
var queryInput = document.getElementById('query-input');
if (!queryInput.value) {
queryInput.style['background'] = 'white url(<a href="http://www.google.com/coop/images/google_custom_search_watermark.gif" target="_blank">http://www.google.com/coop/images/go..._watermark.gif</a>) no-repeat 0% 50%';
}
}
</script>
<form action="./recherche" method="GET" accept-charset="UTF-8">
<input name="q" size="31" id="query-input" style="border: 1px solid rgb(126, 157, 185); padding: 2px;" onfocus="inputFocus();" onblur="inputBlur();" type="text" />
<input name="sa" value="Rechercher" type="submit" />
</form> |
Affichage des résultats :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
<script src="http://www.google.com/jsapi?key=maclé" type="text/javascript"></script>
<script type="text/javascript">
google.load('search', '1');
function getQuery() {
var url = '' + window.location;
var queryStart = url.indexOf('?') + 1;
if (queryStart > 0) {
var parts = url.substr(queryStart).split('&');
for (var i = 0; i < parts.length; i++) {
if (parts[i].substr(0, 1) == 'q') {
return unescape(parts[i].split('=')[1].replace(/\+/g, ' '));
}
}
}
return '';
}
function onLoad() {
var customSearchControl = new google.search.CustomSearchControl('005584578441396243232:epked-4geyy');
customSearchControl.setResultSetSize(google.search.Search.FILTERED_CSE_RESULTSET);
// Draw the control in content div
customSearchControl.draw('cse-search-results');
// Run a query
customSearchControl.execute(getQuery());
}
google.setOnLoadCallback(onLoad);
</script> |
La recherche personnalisée fonctionne parfaitement, mais quand j'utilise le formulaire ci-dessus, les accents sont remplacés par des suites de caractères qui ne sont ensuite pas rétablies par le 'unescape'. Par exemple, une recherche sur le mot 'vélo' appellera la page 'http://www.coord21.ch/test_cmsms/recherche/?q=v%25C3%25A9lo&sa=Rechercher' et la recherche sur v%C3%A9lo ne donnera rien...
Est-ce que quelqu'un saurait me dire ce qui se passe ? Je mets un lien vers mon site : http://www.coord21.ch/test_cmsms/ pour les motivés.
Merci !