簡體   English   中英

Rails to_s機械師

[英]Rails to_s Mechanics

大家好,這讓我很煩。 所以這是一個普遍的問題:

我正在編寫一個應用程序,要求用戶輸入來自傳奇聯盟的召喚者名稱。 我對比賽進行了非常簡單的數據刮刮,然后將數據輸入到數據庫中。 不幸的是,我在用“特殊字符”注冊用戶時遇到一些錯誤。

在此示例中,我將使用一個有問題的用戶:RIÇK

如您所見,RICK!=RIÇK。 因此,當我從站點進行數據清理時,我得到了正確的值,並將其推送到數組上以備后用。

一旦我需要播放器名稱,就可以從數組中提取,如下所示:(player_names是數組)

@temp_player = User.find_by_username(player_names[i].to_s) 

問題是沒有拉出具有任何特殊字符的用戶。 我不應該使用find_by嗎? to_s是否要更改我的原始值? 我真的對如何做非常迷失,非常感謝任何幫助/建議。

提前致謝,

我要感謝Brian Kung提供的指向以下內容的鏈接: joelonsoftware.com/articles/Unicode.html所做的非常出色,它為程序員提供了真正需要了解的最低限度的知識。

對於我的特定問題,我曾使用HTML抓取工具來獲取內容,但始終保留HTML條目。 將這些與我的SQL查找一起使用時,很明顯沒有找到任何東西。 為了解決這個問題,我使用了HTMLEntities Gem來對文本進行解碼,如下所示(我一開始將其最初放入數組中):

requires 'RubyGems' #without this cannot include htmlentries as a gem
requires 'HTMLEntries' 

coder = HTMLEntries.new

line = '<'
player_names.push(coder.decode(line))

外賣

在處理文本時,如果遇到錯誤,我強烈建議您將要使用的字符串追溯到原點,並真正了解每個過程中使用的編碼。 通過這樣做,您可以輕松找到問題所在。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM