Caratteri specia li

Salve,
visualizzando dei dati presi da un RSS, ottengo al posto dei caratteri
specia li dei codici incomprensibili :slight_smile:
Esiste un metodo per ovviare al problema?
Grazie mille

Ieri era tardi e mi sono spiegato male, ripropongo il quesito:
Vorrei implementare un piccolo feed RSS in un sito. Il codice che ho
scritto è il seguente:

<%
require ‘rss/2.0’
require ‘open-uri’

open(‘http://www.xoduslab.com/blog/?feed=rss2’) do |http|
response = http.read
result = RSS::Parser.parse(response,false)
puts "Titolo del feed: "+result.channel.title
result.items.each_with_index do |item, i|
print “
print “#{item.title}”
print “


end
end
%>

Il problema è che, laddove nel titolo ci siano apici o caratteri
particolari, ottengo una serie di caratteri incomprensibili. Potete
vedere il risultato qui:
http://www.xoduslab.com/testruby/

Come posso sistemare questa cosa?
Grazie mille

Sembra essere un problema di codifica dei caratteri. E’ unicode in
ingresso? E la codifica della tua pagina? Dichiari un charset? Spari
gli header giusti? Se sei sicuro che il browser sa che deve
visualizzare il testo come unicode, allora può darsi che devi
“aiutare” Ruby - che non parla unicode un granché - a traslitterare i
caratteri.
Un po’ di tempo fa avevo dei file .csv nati in Excel e codificati in
UTF-16 (UTF-8 è molto più comune) e per poter usare FasterCSV per il
parsing ho convertito tutto il file in Latin1 usando il commando
“iconv” (cioè con un Kernel.exec dal mio script), quindi non so dirti
esattamente come sono messe le librerie interne di Ruby (maluccio
credo).
Davide Di pasquale wrote:

Ieri era tardi e mi sono spiegato male, ripropongo il quesito:
Vorrei implementare un piccolo feed RSS in un sito. Il codice che ho
scritto è il seguente:

<%
require ‘rss/2.0’
require ‘open-uri’

open(‘[1]http://www.xoduslab.com/blog/?feed=rss2’) do |http|
response = http.read
result = RSS::Parser.parse(response,false)
puts "Titolo del feed: "+result.channel.title
result.items.each_with_index do |item, i|
print “
print “#{item.title}”
print “


end
end
%>

Il problema è che, laddove nel titolo ci siano apici o caratteri
particolari, ottengo una serie di caratteri incomprensibili. Potete
vedere il risultato qui:
[2]http://www.xoduslab.com/testruby/

Come posso sistemare questa cosa?
Grazie mille

_______________________________________________________________________

Ml mailing list
[3][email protected]
[4]http://lists.ruby-it.org/mailman/listinfo/ml


“Remember, always be yourself. Unless you suck.” - Joss Whedon

References

  1. http://www.xoduslab.com/blog/?feed=rss2
  2. http://www.xoduslab.com/testruby/
  3. mailto:[email protected]
  4. http://lists.ruby-it.org/mailman/listinfo/ml

Prima di tutto, grazie mille per avermi risposto.
Quel codice è incorporato in un file XHTML con charset specificato, te
lo posto per intero:

test ruby <% require 'cgi' require 'rss/2.0' require 'open-uri'

open(‘http://www.xoduslab.com/blog/?feed=rss2’) do |http|
response = http.read
result = RSS::Parser.parse(response,false)
puts "Titolo del feed: "+result.channel.title
result.items.each_with_index do |item, i|
print “
print “#{item.title}”
print “


end
end
%>

Il feed è un normale feed rss2.0 con charset UTF-8. Ho provato a
modificare il charset nelle impostazioni di wordpress e
nell’content-type del RHTML ma mi si ripresenta sempre il medesimo
problema.
Se iconv è la soluzione, come si usa?