Encodage UTF-8 MySQL

Bonjour à tous et à toutes :slight_smile:

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 :confused:

Merci de m’aider.
Je suis desespérée…

Feustine a écrit :

Bonjour à tous et à toutes :slight_smile:

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 :confused:

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 :confused:

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
    http://chrispederick.com/work/webdeveloper/
  • 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
    http://chrispederick.com/work/webdeveloper/

Ooops, après vérification, webrick renvoie bien systématiquement en UTF8

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs