UString aims to tackle the issues of working with Unicode strings in PHP, via a core, default-enabled extension.

It does this via adding a new class called UString. This class will contain various methods to allow working with charsets such as UTF-8 (default), UTF-16 and several others.

UString provides an extension API , so that other extensions may easily work with and return UString instances.

Having UString sit on top of the ICU library will cover most cases, and it is powerful and has been battle tested for years.

Currently this sort of functionality is often handled by “mbstring”. UString is much quicker than mbstring thanks to the use of ICU, and in turn ICU's use of objects.

This speed boost comes in to play when chaining methods on the object. Instance properties such as length are available, which reduces repetition of basic logic.

Also, by sitting on top of ICU we get a huge amount of functionality for free. The code required to make the underlying ICU functionality in PHP is minimal, with UString acting as a wrapper.