Bonjour à tous et à toutes
Je débute avec Rails et j’ai déjà de gros problèmes avec les jeux de
caractères. Toute ma base de donnée est en UTF-8…
Cependant, il apparaît des ‘?’ à la place de mes accents quand je fais
un simple find() pour récupérer mes données…
J’ai alors essayer plusieurs choses :
Ajouter :
KCODE = u
require jcode
dans mon environement .rb ainsi que l’entete magique
meta http-equiv=“Content-Type” content=“text/html; charset=utf-8” dans
mon layout.
Ce qui est étrange, c’est que mes accents apparaissent quand je force ma
page en ISO-8859-1. Ca aurait pu faire l’affaire… Mais ce tour de passe
/ passe ne marche plus dès que j’ai une requète AJAX
Merci de m’aider.
Je suis desespérée…
Feustine a écrit :
Bonjour à tous et à toutes
Je débute avec Rails et j’ai déjà de gros problèmes avec les jeux de
caractères. Toute ma base de donnée est en UTF-8…
[…] Ce qui est étrange, c’est que mes accents apparaissent quand je force ma
page en ISO-8859-1. Ca aurait pu faire l’affaire… Mais ce tour de passe
/ passe ne marche plus dès que j’ai une requète AJAX
Hello !
Essaye de mettre un filtre sur ton application controller, comme ceci !
class ApplicationController < ActionController::Base
before_filter :set_charset
def set_charset
suppress(ActiveRecord::StatementInvalid) do
ActiveRecord::Base.connection.execute ‘SET NAMES UTF8’
end
if request.xhr?
@headers[‘Content-Type’] = ‘text/javascript; charset=utf-8’
else
@headers[‘Content-Type’] = ‘text/html; charset=utf-8’
end
end
end
A priori ça doit résoudre ton pb puisque même les requêtes “xhr” (i.e.
Ajax) se verront adjoindre l’en-tête HTTP définissant le content-type
“qui va bien”.
Hope this helps…
Bonne journée !
Benjamin
Ce qui est étrange, c’est que mes accents apparaissent quand je force ma
page en ISO-8859-1. Ca aurait pu faire l’affaire… Mais ce tour de passe
/ passe ne marche plus dès que j’ai une requète AJAX
Merci de m’aider.
Je suis desespérée…
Je copie/colle un ancien message
Il faut vérifier toute la chaîne :
- encoding des champs de la base de données
ok d’après “Toute ma base de donnée est en UTF-8…”
- encoding de la connexion avec la base de données
Il faut donc vérifier la présence de la ligne
encoding: utf8
dans le fichier database.yml
- encoding déclaré dans l’en-tête méta HTML
ok d’après meta http-equiv=“Content-Type” content=“text/html;
charset=utf-8”
- encoding du fichier lui-même
vérifier l’encodage des fichiers dans l’éditeur de texte/IDE
- encoding envoyé par Rails dans les en-têtes HTTP
ça doit être bon avec KCODE = u
et require jcode
- encoding envoyé par le serveur web
Par défaut, je crois que Webrick ne renvoie pas en UTF8. vérifier les
entêtes avec l’extension webdeveloper pour Firefox par exemple
Web Developer
- encoding envoyé par le serveur web
Par défaut, je crois que Webrick ne renvoie pas en UTF8. vérifier les
entêtes avec l’extension webdeveloper pour Firefox par exemple
Web Developer
Ooops, après vérification, webrick renvoie bien systématiquement en UTF8