The documentation for `UTF8::clean` is pretty clear about what it does, stating that it..

>  converts to the requested charset while silently discarding incompatible characters.

Changing `mb_substitute_character` to something _other than_ `none` will cause different behavior.

If someone changes this configuration in the bootstrap to something other than `none`, and doesn't make the connection that it was configured this way specifically for the `UTF8::clean` method, then when they use `UTF8::clean` they may be confused about why it's not discarding incompatible characters.

Perhapse it would be better if the `UTF8::clean` had a method signature like this instead

````php
public static function clean($var, $charset = NULL, $substitute_character = 'none')
````

making it a configurable per call. (I'm not sure if this would be an API breaking change though, forcing it into 3.4)

At the very least it would probably be a good idea to change the description of this configuration in the bootstrap from

````
Set the mb_substitute_character to "none"
````

to something a little more descriptive of _what_ this configuration is for such as

````
Configure character substitution for invalid character transliteration for use in `UTF8::clean`
````