0

嘿,伙计们,这让我很受挫。所以这是一个普遍的问题:

我正在编写一个应用程序,要求用户输入英雄联盟中的召唤师名称。我做了一个非常简单的匹配数据抓取并将数据输入到我的数据库中。不幸的是,我在使用“特殊字符”注册用户时遇到了一些错误。

对于这个例子,我将使用一个问题用户:RIÇK

如您所见,RICK != RIÇK。因此,当我从站点进行数据清理时,我会得到正确的值,并将其推送到数组中以备后用。

一旦我需要从数组中提取的玩家名称,如下所示:(player_names 是数组)

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

问题是没有拉出具有任何特殊字符的用户。我不应该使用 find_by 吗?to_s 是否改变了我的原始值?我真的很迷茫,不知道该怎么做,非常感谢任何帮助/建议。

提前致谢,

4

1 回答 1

0

我要感谢 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))

外卖

在处理文本时,如果遇到错误,我强烈建议您跟踪您正在使用的字符串的来源,并真正了解每个进程中使用的编码。通过这样做,您可以轻松找到问题所在。

于 2013-04-07T19:17:41.673 回答