2012-07-24 2 views
2

나는 SQLite는 데이터베이스에있는 mp3의에서 태그를 저장하기 위해 노력하고있어 나는 다음과 같은 오류 얻을 :sqlite 데이터베이스에 저장하기 위해 문자열을 살균하는 방법은 무엇입니까?


SQL (0.3ms) INSERT INTO "songs" ("album", "artist", "created_at", "length", "path", "store_id", "title", "track_number", "updated_at") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?) [["album", "\xFF\xFE2\x001\x00"], ["artist", "\xFF\xFEa\x00d\x00e\x00l\x00e\x00"], ["created_at", Tue, 24 Jul 2012 03:34:03 UTC +00:00], ["length", 15], ["path", "/audios/music/Adele - Discography (Complete) [2008 - 2011]/Adele - 21 [2011] + Bonus Tracks/01. Adele - Rolling in the Deep.mp3"], ["store_id", 3], ["title", "\xFF\xFEr\x00o\x00l\x00l\x00i\x00n\x00g\x00 \x00i\x00n\x00 \x00t\x00h\x00e\x00 \x00d\x00e\x00e\x00p\x00"], ["track_number", "01"], ["updated_at", Tue, 24 Jul 2012 03:34:03 UTC +00:00]] 
Encoding::UndefinedConversionError: "\xFF" from ASCII-8BIT to UTF-8: INSERT INTO "songs" ("album", "artist", "created_at", "length", "path", "store_id", "title", "track_number", "updated_at") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?) 
    (0.2ms) rollback transaction 
ActiveRecord::StatementInvalid: Encoding::UndefinedConversionError: "\xFF" from ASCII-8BIT to UTF-8: INSERT INTO "songs" ("album", "artist", "created_at", "length", "path", "store_id", "title", "track_number", "updated_at") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?) 

어떻게 제거 할 수 또는 입력을 살균?

+0

입력 데이터는 정말 '\ XFF \ xFE2 \ X001 \ x00부터'처럼 보인다? –

+0

데이터는 id3 태그에서 자동으로 생성되며 대부분의 프로그램에서 해당 문자를 제거하고 나머지는 빈 상자 또는 물음표로 표시합니다. 'Song.new'를 사용하고 각 값을 별도로 설정하고 오류 코드가 정크 문자를 물음표로 표시했지만'Song.create (hash) '로 변경하면 위의 내용이 표시됩니다. – everett1992

+0

Axctivrecord는 ASCII-8BIT에서 UTF-8'까지'Encoding :: UndefinedConversionError : "\ xFF"에 대해서 불평하지만,'\ xFF \ xFE2 \ x001 \ x00'는'ASCII-8BIT' 인코딩이 아닙니다. 따라서 ActiveRecord를 호출하기 전에 id3 태그를 UTF-8로 변환하여이 문제를 해결할 수 있습니다. –

답변

1

ActiveRecord는 Encoding::UndefinedConversionError: "\xFF" from ASCII-8BIT to UTF-8에 대해 불평하지만, \xFF\xFE2\x001\x00ASCII-8BIT 인코딩에 없습니다. 따라서 ActiveRecord를 호출하기 전에 id3 태그를 UTF-8로 변환하여이 문제를 해결할 수 있습니다.

"source string".encoding(dst_encoding, src_encoding). 

문서는 : http://www.ruby-doc.org/core-1.9.3/String.html#method-i-encode

관련 문제