Précédent   Forum des professionnels en informatique > Autres langages > Autres langages > Ruby
Ruby Le forum sur la programmation Ruby. Voir aussi la FAQ Ruby et les cours Ruby.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/12/2011, 22h34   #1
Invité de passage
 
Homme René
Retraité
Inscription : décembre 2011
Messages : 4
Détails du profil
Informations personnelles :
Nom : Homme René
Localisation : Canada

Informations professionnelles :
Activité : Retraité

Informations forums :
Inscription : décembre 2011
Messages : 4
Points : 0
Points : 0
Par défaut Les accents français en Ruby

Bonjour

Je voudrais mettre des accents dans les programmes en ruby?

Comme suis

temperature = 26

puts "La température est de " + String(temperature) + "."

temperature = temperature + 5

puts "Et maintenant elle est de " + String(temperature) + "."


La réponse est

>ruby variables.rb
variables.rb:5: invalid multibyte char (UTF-8)
variables.rb:5: syntax error, unexpected tIDENTIFIER, expecting $end
puts "La température est de " + String(temperature) + "."

>Exit code: 1

En HTML je place ceci au début du fichier

<!DOCTYPE html>
<meta charset="utf-8" />

Et ça fonctionne très bien
MarcRay est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2012, 15h53   #2
Membre émérite
 
Inscription : novembre 2007
Messages : 553
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 553
Points : 876
Points : 876
Tu peux ajouter au début de ton fichier.

Avec ou sans l'encodage défini en commentaire, je n'ai aucun problème avec le code!

Code :
1
2
3
4
5
 
temperature = 26
puts "La température est de " + String(temperature) + "."
temperature = temperature + 5
puts "Et maintenant elle est de " + String(temperature) + "."
La syntaxe suivante me semble plus utilisée :
Code :
puts "Et maintenant elle est de #{temperature}."
.
__________________
ZiK un lecteur audio et son blog.
vinc-mai est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2012, 05h52   #3
Invité de passage
 
Homme René
Retraité
Inscription : décembre 2011
Messages : 4
Détails du profil
Informations personnelles :
Nom : Homme René
Localisation : Canada

Informations professionnelles :
Activité : Retraité

Informations forums :
Inscription : décembre 2011
Messages : 4
Points : 0
Points : 0
Par défaut Accents français en Ruby

Voici un petit programme
Code :
1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/env ruby
# encoding: utf-8

line_width = 50

puts (     "       Bonjour René ".center(line_width))
puts(      "       ........ ....  ".center(line_width))
puts (  "  Ceci est un fichier texte. ".center(line_width))
puts (        "  Ceci est un fichier texte ordinaire ".center(line_width))
puts (  "  Ce fichier n'est pas inabituel ".center(line_width))
puts (  "  Voici un simple texte ".center(line_width))
Et voici ce que j'ai sur le terminal

Code :
1
2
3
4
5
6
7
rene@Linux-Ubuntu:~/ruby$ ruby centrer-lignes.rb 
centrer-lignes.rb:6: invalid multibyte char (UTF-8)
centrer-lignes.rb:7: syntax error, unexpected tDOT3
puts(      "       ........ ....  ".center(line_width))
                         ^
centrer-lignes.rb:8: syntax error, unexpected tCONSTANT, expecting $end
puts (  "  Ceci est un fichier texte. ".center(line_width))
Lorsque j'enlève le é j'ai ça sur le terminal

Code :
1
2
3
4
5
6
7
rene@Linux-Ubuntu:~/ruby$ ruby centrer-lignes.rb 
                      Bonjour Rene                
                     ........ ....                
            Ceci est un fichier texte.            
        Ceci est un fichier texte ordinaire       
          Ce fichier n'est pas inabituel          
               Voici un simple texte
Que faire ?

Merci de votre réponse
MarcRay est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2012, 14h16   #4
Modérateur
 
Avatar de ymoreau
 
Homme Yoann Moreau
Ingénieur en laboratoire de recherche
Inscription : septembre 2005
Messages : 724
Détails du profil
Informations personnelles :
Nom : Homme Yoann Moreau
Âge : 26
Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Ingénieur en laboratoire de recherche
Secteur : Enseignement

Informations forums :
Inscription : septembre 2005
Messages : 724
Points : 1 130
Points : 1 130
Est-ce que ton fichier est effectivement encodé en utf-8 ? Ton éditeur texte doit pouvoir te le dire, et au besoin convertir. J'ai testé ton fichier chez moi et il fonctionne normalement avec l'accent.
ymoreau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2012, 16h10   #5
Modérateur
 
Avatar de ymoreau
 
Homme Yoann Moreau
Ingénieur en laboratoire de recherche
Inscription : septembre 2005
Messages : 724
Détails du profil
Informations personnelles :
Nom : Homme Yoann Moreau
Âge : 26
Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Ingénieur en laboratoire de recherche
Secteur : Enseignement

Informations forums :
Inscription : septembre 2005
Messages : 724
Points : 1 130
Points : 1 130
Merci de ne pas poser de question par MP !

Citation:
Envoyé par MarcRay
Oui

Avec SciTe dans .sciteuser.properties, j'ai cela :
.
.
.
code.page=65001
#code.page=0
#character.set=204
# Required for Unicode to work on GTK+:
LC_CTYPE=en_US.UTF-8
if PLAT_GTK
output.code.page=65001
output.code.page=UTF-8

Et avec Gedit Inconnu, mais théoriquement oui ...
Je n'utilise ni l'un ni l'autre, je ne saurais pas te dire à quoi ça correspond. Apparemment il y a la commande enca qui permet de savoir l'encodage d'un fichier, et de le convertir. Si le fichier est bien en utf-8 je n'ai aucune idée de pourquoi ça ne fonctionne pas.
ymoreau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2012, 16h44   #6
Modérateur
 
Avatar de ymoreau
 
Homme Yoann Moreau
Ingénieur en laboratoire de recherche
Inscription : septembre 2005
Messages : 724
Détails du profil
Informations personnelles :
Nom : Homme Yoann Moreau
Âge : 26
Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Ingénieur en laboratoire de recherche
Secteur : Enseignement

Informations forums :
Inscription : septembre 2005
Messages : 724
Points : 1 130
Points : 1 130
Citation:
Envoyé par MarcRay
Bonjour

J'ai trouvé l'erreur.

Il faut mettre
#encoding: utf-8 sans espace entre '#' et 'encoding'

Autre question

Y aurait-il moyen de mettre '#encoding: utf-8'
dans l’environnement Ruby (/bin/ruby/ruby env) au lieu de toujours le mettre au début de chaque programme.

Je pense à Ruby on Rails que je vais mettre à le maîtriser.
Quand je parle de RoR il faut aussi penser au HTML qui a le même problème avec les accents.

Etait-il possible de faire la même opération que pour Ruby

Merci
ymoreau est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 15/03/2012, 16h44   #7
Invité de passage
 
Homme René
Retraité
Inscription : décembre 2011
Messages : 4
Détails du profil
Informations personnelles :
Nom : Homme René
Localisation : Canada

Informations professionnelles :
Activité : Retraité

Informations forums :
Inscription : décembre 2011
Messages : 4
Points : 0
Points : 0
Citation:
Envoyé par ymoreau Voir le message
Merci de ne pas poser de question par MP !



Je n'utilise ni l'un ni l'autre, je ne saurais pas te dire à quoi ça correspond. Apparemment il y a la commande enca qui permet de savoir l'encodage d'un fichier, et de le convertir. Si le fichier est bien en utf-8 je n'ai aucune idée de pourquoi ça ne fonctionne pas.
Je l'ai essayé et il ( enca ) ne supporte pas le français snif (pour les français)
MarcRay est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2012, 19h10   #8
Membre émérite
 
Inscription : novembre 2007
Messages : 553
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 553
Points : 876
Points : 876
Salut.

Quel terminal utilise-tu ? Supporte-t-il utf8 ?
Quel version de ruby ?
__________________
ZiK un lecteur audio et son blog.
vinc-mai est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2012, 21h28   #9
Invité de passage
 
Homme René
Retraité
Inscription : décembre 2011
Messages : 4
Détails du profil
Informations personnelles :
Nom : Homme René
Localisation : Canada

Informations professionnelles :
Activité : Retraité

Informations forums :
Inscription : décembre 2011
Messages : 4
Points : 0
Points : 0
Par défaut Encodage UFT-8

Bonjour

1 - Pour ce qui est du terminal, Oui il supporte des accents

2- Ruby 1.9.2p318

Je parlais de ENCA qui n'a pas le français dans la liste de référence Pauvre de nous petits français qui perdons la langue officiel de l'ONU (et diplomatique)

J'ai résolu le problème en mettant au début de chaque programme ''.rb'' comme ceci

#!/usr/bin/env ruby
#encoding: utf-8

Aurait-il une manière de mettre encodage dans l'environnement Ruby (Ruby on Rails)
pour qu'on est pas à l'écrire à chaque fois

A bientôt
MarcRay
Citation:
Envoyé par vinc-mai Voir le message
Salut.

1-Quel terminal utilise-tu ? Supporte-t-il utf8 ?
2-Quel version de ruby ?
MarcRay est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h03.


 
 
 
 
Partenaires

Hébergement Web