Come leggo correttamente i caratteri accentati dell'italiano?

Una cosa banale. Leggo un testo in italiano e ovviamente ha le lettere
accentate che sono èòàìùé. Ora siccome mi rompono sempre le scatole
quando porto i testi in html, con la menata della codifica caratteri,
vorrei fare un semplice script ruby che mi prende un testo e mi converte

è -> e’
é -> e’
à -> a’

e così via. Così quando porto il testo in rete, non ho più problemi di
trovarmi caratteri strani a video.

Come posso fare?

Grazie
XarYo

xaryo wrote:

Una cosa banale. Leggo un testo in italiano e ovviamente ha le lettere
accentate che sono ������. Ora siccome mi rompono sempre le scatole
quando porto i testi in html, con la menata della codifica caratteri,
vorrei fare un semplice script ruby che mi prende un testo e mi converte

� -> e’
� -> e’
� -> a’

e cos� via. Cos� quando porto il testo in rete, non ho pi� problemi di
trovarmi caratteri strani a video.

Come posso fare?

Grazie
XarYo

Se dal browser selezioni la codifica ISO-8859-1 li vedi i caratteri?
Perchè credo che dovresti impostare quella codifica nel layout della tua
pagina per farla selezionare in automatico dal browser

se usi xhtml:

<?xml version="1.0" encoding="ISO-8859-1"?>

io uso anche il meta in html:

PS: ho provato e stranamente non mi seleziona in auto quel charset,
strano perchè ero sicuro funzionasse, purtroppo in questo momento non
riesco a fare altre prove

xaryo wrote:

Come posso fare?

credo che stai cercando di risolvere il problema sbagliato :slight_smile:
il problema in realtà è che i caratteri accentati non ti si visualizzano
nelle pagine html. da dove vengono quei caratteri? da un database? il db
che codifica ha? utf-8? le pagine web in che charset vengono spedite al
browser? in utf-8 anche loro? o in us-ascii? o in un’altra codifica? è
importante sapere in che che codifica salvi e manipoli le varie stringhe
che ti passano per gli applicativi quando spali i dati. usare solo
caratteri presenti nella codifica us-ascii non è una soluzione che
adotterei. di solito si fa il db in utf-8, si modificano i file in utf-8
e si mandano al browser in utf-8. in questo modo non devi convertire da
un charset a un altro e non ti devi sbattere se un giorno dovrai fare
uso anche di caratteri orientali o comunque al di fuori della codifica
che stai usando.

S2 Akira wrote:

xaryo wrote:

Come posso fare?

credo che stai cercando di risolvere il problema sbagliato :slight_smile:
il problema in realtà è che i caratteri accentati non ti si visualizzano
nelle pagine html. da dove vengono quei caratteri? da un database? il db
che codifica ha? utf-8? le pagine web in che charset vengono spedite al
browser? in utf-8 anche loro? o in us-ascii? o in un’altra codifica? è
importante sapere in che che codifica salvi e manipoli le varie stringhe
che ti passano per gli applicativi quando spali i dati. usare solo
caratteri presenti nella codifica us-ascii non è una soluzione che
adotterei. di solito si fa il db in utf-8, si modificano i file in utf-8
e si mandano al browser in utf-8. in questo modo non devi convertire da
un charset a un altro e non ti devi sbattere se un giorno dovrai fare
uso anche di caratteri orientali o comunque al di fuori della codifica
che stai usando.

Nella prova cho ho fatto io, le accentate nel db vengono mostrate
correttamente, quelle nei messaggi dell’oggetto flash invece no. Come
codifica della pagina c’è sempre fisso UTF-8 (non capisco perchè se la
pagina la invio come iso, vabbè), se imposto ISO-8859-1, vedo
correttamente i messaggi ma le accentate del db vanno a farsi friggere.

Marco M. wrote:

Nella prova cho ho fatto io, le accentate nel db vengono mostrate
correttamente,

ok. non so come hai fatto le prove, ma da questo deduco che qualsiasi
charset tu abbia impostato sul db, i dati vengono salvati corretamente.

quelle nei messaggi dell’oggetto flash invece no. Come
codifica della pagina c’è sempre fisso UTF-8

bene. negli header della pagina html quindi hai scritto UTF-8, e anche
nel header che invia il server web?

(non capisco perchè se la
pagina la invio come iso, vabbè), se imposto ISO-8859-1, vedo
correttamente i messaggi

quali messaggi?

ma le accentate del db vanno a farsi friggere.

allora direi che hai il db in UTF-8, ma i “messaggi” sono in ISO-8859-1.
devi cercare di capire perché. usi un editor che salva i file in UTF-8?

Io ho risolto i problemi di visualizzazione dei caratteri speciali
aggiungendo nel database.yml la riga:

encoding: utf8

e cioè:

development:
adapter: mysql
database: softwdb
username: root
password:
host: localhost
encoding: utf8

Inoltre ho notato che la codifica dei file html generati da ROR è sempre
UTF-8 e quindi nell’html dovresti inserire questa codifica.

Spero di esserti stato di aiuto.

Luigi