[ATTN] To all users of unicode_hacks

TO everyone who is making use of unicode_hacks!

I have made irreversible changes to the plugin so that the routings
are no longer overloaded. To call the character-bound routines, you need
to use the “chars” or “u” accessors, as outlined in the docs


and in this blog post by Thijs:


I had to push the trigger on this because too much stuff was breaking
with proper Unicode handling. I hope one day (when I am still alive)
Matz will do the same and just abolish byte-bound Strings. It’s not
likely to happen in the near future.

The changes made also mean that YOUR CODE is probably broken NOW if
it relies on the patched behavior. If you need the “old” (overriding)
string handling to persist, you have to do the following:

require RAILS_ROOT + ‘/vendor/plugins/unicode_hacks/lib/

These will remain in the plugin but they are not enabled by default.

We have started a motion to integrate the String#chars accessors into
ActiveSupport and thus ship it built-in with Rails.
Sadly enough, I don’t expect any positive response on that from the
group of Rails core developers (they rather patch around where Rails
explodes completely instead of adopting a uniform API),
so of you can please help me find more places where such handling can
be useful in Rails. The ticket we opened is here:


there you can see a number of examples where the chars handling is
beneficial and helps to chop off some cruft. More helper patches are

We also need some urgent help with that - namely we want to provide a
pure-ruby Unicode normalizer-casefolder with the plugin (and the
patch). Currently
there are 2 libraries implementing that through the bindings to C
libraries, and one Ruby extension that binds to ICU. We want that to
be available without any compilation
being needed.

If someone can help us out he will greatly speed up the process. If
someome feels like flexing his Unicode muscle in pure ruby code, he
can contact me

[email protected]

or Thijs van der Vossen

[email protected]

by mail to discuss the project.

I hope I have informed everyone of the issue.

Julian ‘Julik’ Tarkhanov
please send all personal mail to
me at julik.nl