Thanks for adding the UTF-8 / DB charset capability!
Though, I still think it is a bug in the search and replace loop. When you have the special case where you have a match on let say two of the search strings in the same column, then I think you will get an update SQL with same column twice:
UPDATESQL = UPDATE <table> SET columnX = “edited_data_after_first_ replace’, columnX = ‘edited_data_after_second_replace’
The ‘edited_data_after_second_replace’ is the result after a replace on $data_to_fix which is set to $row[$current_column] in the beginning of the loop which means that the first replace will have no effect.
This might be a rare case but I noticed such column for a plugin that saved all it option data serialized in one column.
BR,
Hans