Salve,
visualizzando dei dati presi da un RSS, ottengo al posto dei caratteri
specia li dei codici incomprensibili
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
Prima di tutto, grazie mille per avermi risposto.
Quel codice è incorporato in un file XHTML con charset specificato, te
lo posto per intero:
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?