--- alexandria-0.6.8/lib/alexandria/ui/dialogs/misc_dialogs.rb.ruby19_utf8 2009-03-26 08:09:32.000000000 +0900 +++ alexandria-0.6.8/lib/alexandria/ui/dialogs/misc_dialogs.rb 2012-04-13 12:38:05.065369194 +0900 @@ -22,9 +22,11 @@ GetText.bindtextdomain(Alexandria::TEXTDOMAIN, :charset => "UTF-8") def initialize(parent, library, book) + # Don't know why, however force_encoding seems needed here to + # prevent crash... super(parent, _("The book '%s' already exists in '%s'. Would you like " + - "to replace it?") % [ book.title, library.name ], + "to replace it?") % [ book.title, library.name ].dup.map!{|str| str.force_encoding("UTF-8")}, Gtk::Stock::DIALOG_QUESTION, [[_("_Skip"), Gtk::Dialog::RESPONSE_CANCEL], [_("_Replace"), Gtk::Dialog::RESPONSE_OK]], --- alexandria-0.6.8/lib/alexandria/ui/ui_manager.rb.ruby19_utf8 2011-11-15 22:09:19.000000000 +0900 +++ alexandria-0.6.8/lib/alexandria/ui/ui_manager.rb 2012-04-13 12:38:05.066369229 +0900 @@ -825,7 +825,9 @@ iter[Columns::TITLE] = book.title title = book.title.sub(REDUCE_TITLE_REGEX, '\1...') iter[Columns::TITLE_REDUCED] = title - iter[Columns::AUTHORS] = book.authors.join(', ') + # Don't know why, however force_encoding seems needed here to + # prevent crash... + iter[Columns::AUTHORS] = book.authors.dup.map!{|str| str.force_encoding("UTF-8")}.join(', ') iter[Columns::ISBN] = book.isbn.to_s iter[Columns::PUBLISHER] = book.publisher iter[Columns::PUBLISH_DATE] = (book.publishing_year.to_s rescue "")