added utf8 (partial)
replace method for ascii strings optimized for char