Extension methods for String.
Extension methods for String. Meant to be mixed into an extension method implicit class, which is why it extends Any. While we provide a StringImplicits implementation below that uses this trait, we define this trait separately so that client projects can extend the extension methods further (because you cannot extend an extension method class).
To understand the quirky rules of extension method implicit classes, see http://docs.scala-lang.org/overviews/core/value-classes.html#extension-methods
A String extension method class should be defined like: format: OFF
implicit class MyStringImplicits(val str: String) extends AnyVal with StringExtras { def anotherExtensionMethod = str.replaceAll("foo", "bar")
format: ON
Maps weird unicode characters to ASCII equivalents This list comes from http://goo.gl/qYCpw1