0

やあ皆さん、これは私をかなりつまずかせています。したがって、一般的な問題は次のとおりです。

ユーザーがリーグ オブ レジェンドのサモナー名を入力する必要があるアプリケーションを作成しています。私はマッチの非常に単純なデータ スクレイピングを行い、そのデータをデータベースに入力します。残念ながら、「特殊文字」を使用してユーザーを登録する際にエラーが発生しています。

この例では、1 人の問題のあるユーザーを使用します: 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 に感謝ます。

私の特定の問題については、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 に答える