There are subtle differences between MultiByteToWideChar, WideCharToMultibyte and the ICU equivalents
* Support apple with NSString * Support android via JNI * Split ICU to own file