2011-05-10 705 views
2

我想將一個帶有電子郵件地址的字符串轉換爲ASCII字符,以便放置在HTML文檔中。最簡單的方法是什麼?如何將電子郵件字符串轉換爲ASCII字符?

我不斷收到陣列回我在我的模型中使用此代碼字符的HTML文檔中:

def ascii_email 
    self.email.each_byte do |e| 
    "&#", e, ";" 
    end 
end 
+0

這是一個有效的紅寶石代碼?我無法得到你的問題。 – sawa 2011-05-10 00:58:19

+0

這似乎是非常密切相關的這個其他問題:http://stackoverflow.com/questions/1600526/how-to-encode-decode-html-entities-in-ruby – buruzaemon 2011-05-10 00:59:15

回答

4

你迭代中的電子郵件地址的字符沒有實際使用的時候,所以這不是將成爲你想要的。

def ascii_email 
    self.email.bytes.collect do |e| 
     "&\##{e};" 
    end.join('') 
end 

有這麼簡單的通過元素進入一個迭代器和一個返回轉換結果之間的一個重要而微妙的差別。你的代碼片段中還缺少一些將轉換後的數組轉換回字符串的東西。

+0

那麼'collect'做什麼? – 2011-05-10 00:58:49

+0

它是[Enumerable](http://apidock.com/ruby/Enumerable)的一部分,並將每次迭代的結果「收集」到一個返回給您的新數組中。 – tadman 2011-05-10 01:00:06