I reverted this in another PR, but calling ```as_8bit_ascii(string).downcase``` doesn't work since it doesn't downcase unicode(multibyte) chars
```
[5] pry(main)> string = "Árabe"
=> "Árabe"
[6] pry(main)> string.downcase
=> "Árabe"
[7] pry(main)> string.mb_chars.downcase
=> #<ActiveSupport::Multibyte::Chars:0x007f2721be92a0 @wrapped_string="árabe">
[8] pry(main)> string.mb_chars.downcase.to_s
=> "árabe"
[9] pry(main)> string.dup.force_encdoing('BINARY')
NoMethodError: undefined method `force_encdoing' for "Árabe":String
from (pry):9:in `__pry__'
[10] pry(main)> string.dup.force_encoding('BINARY')
=> "\xC3\x81rabe"
[11] pry(main)> string.dup.force_encoding('BINARY').downcase
=> "\xC3\x81rabe"
[12] pry(main)> string.dup.force_encoding('BINARY').downcase.force_encoding('UTF-8')
=> "Árabe"
```