Forum: Italian Ruby user group carattere e accentato

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Giampiero Z. (Guest)
on 2009-02-12 12:37
ciao a tutti
ho notato quanto segue:
stringa = "il tempo è bello"
p stringa
produce
"il tempo \350 bello"
sapete dirmi qual è il modo migliore, più semplice, di ovviare al
problema?
grazie in anticipo per le vostre risposte
Pietro G. (Guest)
on 2009-02-12 12:51
(Received via mailing list)
2009/2/12 Giampiero Z. <removed_email_address@domain.invalid>:
> ciao a tutti
> ho notato quanto segue:
> stringa = "il tempo è bello"
> p stringa
> produce
> "il tempo \350 bello"
> sapete dirmi qual è il modo migliore, più semplice, di ovviare al
> problema?

puts stringa funziona.

per quanto riguarda gli script: in genere si sconsiglia di usare
caratteri accentati nel codice (non è una questione di ruby, vale più
o meno per tutti i linguaggi); tuttavia, la soluzione è usare sempre e
comunque lo stesso encoding (io uso felicemente utf8 e non ho ancora
avuto problemi).

pietro
Giampiero Z. (Guest)
on 2009-02-12 13:26
> puts stringa funziona.
>
> per quanto riguarda gli script: in genere si sconsiglia di usare
> caratteri accentati nel codice (non � una questione di ruby, vale pi�
o meno per tutti i linguaggi); tuttavia, la soluzione � usare sempre e
> comunque lo stesso encoding (io uso felicemente utf8 e non ho ancora
> avuto problemi).
>
> pietro
grazie Pietro
è vero puts stringa funziona
scusa l'ignoranza, ma cosa significa usare un encoding; si sta parlando
di un parametro di configurazione dell'ambie nte Ruby? se sì, come si
imposta?
grazie
Pietro G. (Guest)
on 2009-02-12 13:56
(Received via mailing list)
Il 12 febbraio 2009 12.26, Giampiero Z. <removed_email_address@domain.invalid> 
ha scritto:
>> pietro
> cosa significa usare un encoding; si sta parlando di un parametro
> di configurazione dell'ambie nte Ruby? se sì, come si imposta?

no, è una cosa che riguarda i file, le stringhe etc. e come vengono
scritte.

ti è mai capitato di vedere una pagina web in cui i caratteri
accentati, gli apici, etc. sono sostituiti da simboli strani?

questo accade quando viene dichiarato un formato ma ne viene usato un
altro.
Giampiero Z. (Guest)
on 2009-02-12 14:21
Pietro G. wrote:
> Il 12 febbraio 2009 12.26, Giampiero Z. <removed_email_address@domain.invalid> ha 
scritto:
>>> pietro
>> cosa significa usare un encoding; si sta parlando di un parametro
>> di configurazione dell'ambie nte Ruby? se s�, come si imposta?
>
> no, � una cosa che riguarda i file, le stringhe etc. e come vengono
> scritte.
>
> ti � mai capitato di vedere una pagina web in cui i caratteri
> accentati, gli apici, etc. sono sostituiti da simboli strani?
>
> questo accade quando viene dichiarato un formato ma ne viene usato un
> altro.
sì capisco
quello che non capisco è: dove devo intervenire per specificare che
voglio usare utf8?
Luigi M. (Guest)
on 2009-02-12 15:07
Forse non c'entra ciò che sto per dirti però te lo dico lo stesso, io la
dichiarazione la faccio nel file database.yml:


development:
  adapter: mysql
  database: softwdb
  username: root
  password:
  host: localhost
  encoding: utf8
Paolo M. (Guest)
on 2009-02-12 16:27
Luigi M. wrote:
> Forse non c'entra ciò che sto per dirti però te lo dico lo stesso, io la
> dichiarazione la faccio nel file database.yml:
>
>
> development:
>   adapter: mysql
>   database: softwdb
>   username: root
>   password:
>   host: localhost
>   encoding: utf8

Si deve fare attenzione a conservare lo stesso encoding ovunque.

1) Nel database, come mostrato dall'esempio di Luigi.

2) Nelle pagine web, di solito mettendo nell'head
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
in risposta al quale i browser convertiranno in utf-8 qualsiasi testo
che gli utenti del sito inseriranno nei form.

3) Nel tuo editor, quando scrivi stringhe con caratteri accentati.

4) Nel tuo terminale, se ad esempio usi un client a command line per
inserire dati nel db

5) Nei dati che eventualmente importi nel db e che potrebbero avere
encoding differenti.

6) Mi sarò di sicuro dimenticato qualcosa :-)

Già che ci sono, l'encoding che in tanti usano senza neppure saperlo in
Windows è il Windows-1252 che non è mai stato standardizzato. Da quello
però è nato l'ISO-8859-1 (c'è qualche piccola differenza) che include i
caratteri delle lingue dell'Europa occidentale ed è molto usato sul web.
Meglio però usare l'ISO-8859-15 che include qualche lettera non nostra
che mancava nell'altro e soprattutto il carattere per l'Euro. Meglio
ancora usare UTF-8 che include tutti i caratteri del mondo e quindi non
taglia fuori nessuno.

http://en.wikipedia.org/wiki/Windows-1252
http://en.wikipedia.org/wiki/ISO_8859-1
http://en.wikipedia.org/wiki/UTF_8


Paolo
Giampiero Z. (Guest)
on 2009-02-12 16:50
grazie a tutti per le risposte
provo a informarmi con qualche ricerca mirata su internet, ora che mi è
chiaro cosa devo ottenere
Giampiero Z. (Guest)
on 2009-02-13 23:17
ad esempio

puts $KCODE
p "Questa è una stringa"
$KCODE = "UTF-8"
puts $KCODE
p "Questa è una stringa"

produce
NONE
"Questa \303\250 una stringa"
UTF8
"Questa è una stringa"
This topic is locked and can not be replied to.