2011-03-07 5 views
1

J'utilise cette autocomplétion de GoogleGoogle Autocompleter et le codage des caractères

http://code.google.com/p/jquery-autocomplete/ (si vous cliquez sur « Source » vous pouvez trouver tous les fichiers source pour le script)

et tout fonctionne bien , sauf qu'il a des problèmes avec des caractères croates spéciaux (comme č, ć, ž etc.) Je ne suis pas sûr si vous les verrez, alors voici une idée de ce dont je parle: link - la lettre c avec un hachek sur top etc.)

Voici la configuration:

  • un des points de fichier HTML à un script autocomplete jquery et un fichier php avec le tableau des résultats
  • les métadonnées du fichier html a un jeu de caractères utf-8, pas d'autres pages ont tout type d'encodage du tout
  • le tableau dans le fichier php a ces caractères spéciaux codés avec des codes html (la lettre « Z » est remplacé par ž donc un élément de tableau typique ressemble à ceci: "Požega" => "5")
  • quand j'entrer dans une chaîne de recherche dans l'entrée champ, les résultats de retour sont encodés correctement - Požega etc. mais quand Je clique sur le résultat de l'accepter, il entre Požega dans le champ d'entrée, ce qui est évidemment pas ce que je veux
  • quand ma chaîne de recherche a une lettre spéciale en elle, le script ne trouve rien

Comment puis-je réparer ça? Devrais-je simplement remplacer les codes spéciaux HTML dans le tableau par les lettres spéciales réelles (cela semble bien fonctionner à ce moment-là, mais je ne suis pas sûr que tout le monde verra cela comme je le souhaitais)? Si non, comment puis-je définir le codage des caractères sur toutes les pages afin que les lettres spéciales s'affichent correctement dans le champ de saisie et qu'elles soient consultables?

Merci pour l'aide!

Répondre

0

L'encodage de caractères est une telle douleur dans le cul avec les navigateurs. Il y a plusieurs choses que vous pouvez faire pour couvrir vos bases, dont vous avez déjà fait.

  1. Définissez la balise pour indiquer charset de .htaccess utilisation UTF-8
  2. pour définir un jeu de caractères UTF-8
  3. utiliser PHP pour définir un jeu de caractères UTF-8 dans l'en-tête (quelque chose comme: header ('Content-type: text/html; charset = UTF-8'); »

Veiller à ce que ceux-ci sont vraies devraient veiller à ce que les données apparaît sur tous UTF-8 navigateurs pris en charge par la manière,. Je peux voir les caractères spéciaux, donc vous devez faire quelque chose de bien. :)

+0

J'ai fait les 2ème et 3ème points (mettre un fichier .htaccess avec un AddDefaultCharset utf-8; ajouté la ligne d'en-tête dans index.html (renommé en php) et l'autre fichier php). Ça ne marche toujours pas! Ainsi, je peux voir les caractères spéciaux dans la boîte de sélection mais quand je clique sur une option pour le sélectionner, il lance un code html (comme 'ž'). Grrr. – aramaz