Accentuated function names

  • Thread starter Jean-baptiste Hétier
  • Start date
J

Jean-baptiste Hétier

Hello,

I've started a new project in Ruby. For once, my sourcecode is not in
English, but in French, and I'd like to know if its possible to have
accentuated letters for function names in the sourcecode.

I have encoded my file in UTF-8 and it is parsed fine on Linux, but on
Windows, I get warnings and errors:
main.rb:16: Invalid char `\303' in expression

Also, the accents do not display properly in the error messages:
main.rb:34: syntax error, unexpected tFID, expecting '\n' or ';'
def appr├®cie?(voisin)
(instead of "apprécie?(voisin)")

Is there a way to specify sourcefile encoding? I could drop the accents
in the source, but they make the code much more readable!

Thanks.
 
J

Jean-baptiste Hétier

Robert said:
IMHO it is generally a good idea to stick with 7 bit ASCII in source
code. Also, I would never use my mother tongue for source code,
partly because keywords are English anyway (even though Matz is
Japanese) and partly because English is the lingua franca of IT. I
know, this is not what you wanted to hear. :)

Thanks for your answer!

Yeah, I'll probably switch back to English... but I'm still interested
in a solution. In Python you can define the file encoding in some kind
of file header:
#!/usr/bin/python
# -*- coding: <encoding name> -*-
I'm sure there's a way to do that in Ruby as well, but couldn't find it
anywhere :(
 
P

Pascal J. Bourguignon

Jean-baptiste Hétier said:
Thanks for your answer!

Yeah, I'll probably switch back to English... but I'm still interested
in a solution.

Ne te laisse pas dominer par le langage ! La solution c'est de passer
de MatzacredLisp à Common Lisp (par exemple: http://clisp.cons.org) :

C/USER[4]> (defun décrémenter (x) (1- x))
DÉCRÉMENTER
C/USER[5]> (décrémenter 42)
41
C/USER[6]>

In Python you can define the file encoding in some kind
of file header:
#!/usr/bin/python
# -*- coding: <encoding name> -*-
I'm sure there's a way to do that in Ruby as well, but couldn't find it
anywhere :(

AFAIK, python doesn't use that line.
It's emacs that uses to store buffer local variables.

All my scripts start with:

#!/usr/bin/clisp -ansi -q
;; -*- mode:lisp; coding:utf-8; -*-
 
O

Ollivier Robert

Yeah, I'll probably switch back to English... but I'm still interested
in a solution. In Python you can define the file encoding in some kind
of file header:
#!/usr/bin/python
# -*- coding: <encoding name> -*-

As it was already said, 1.9 does support the Encoding string but for 1.8, you may want to try adding "-Ku" to your Ruby invocation.

395 [14:46] roberto@roberto-al:/tmp> ruby -Ku foo.rb
Bonjour
396 [14:46] roberto@roberto-al:/tmp> cat foo.rb
#! /opt/local/bin/ruby -Ku
#
def été(foo)
puts(foo)
end

été("Bonjour")

With foo.rb written with utf-8 encoding.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,579
Members
45,053
Latest member
BrodieSola

Latest Threads

Top