This is a souped-up version of the [Normalizer plugin](https://wordpress.org/plugins/normalizer/ “Normalizer – WordPress Plugins”) by [Torsten Landsiedel](https://profiles.wordpress.org/zodiac1978/).
It adds WP filters to normalize UTF-8 data coming into the system to the [de facto web standard Normalization Form C](https://www.w3.org/International/docs/charmod-norm/#choice-of-normalization-form “Choice of Normalization Form”). The Unicode Consortium report is at [Unicode Normalization Forms](http://www.unicode.org/reports/tr15/).
= Polyfills =
For best performance [install](http://php.net/manual/en/intl.installation.php) (if possible) the [PHP Internationalization extension `Intl`](http://php.net/manual/en/intro.intl.php), which includes the PHP class `Normalizer`.
However the plugin works without the PHP `Intl` extension being installed, as it uses (a modified version of) the [Symfony `Normalizer` polyfill](https://github.com/symfony/polyfill/tree/master/src/Intl/Normalizer).
= Background =
For further info, see the WP Trac ticket [#30130 Normalize characters with combining marks to precomposed characters](https://core.trac.wordpress.org/ticket/30130) and this [Make WP Core comment](https://make.wordpress.org/core/2016/05/17/may-17-feature-projects-chat-and-prompt/#comment-30300).
The plugin also works around the Safari-specific issues raised by the WP Trac ticket [#22363 Accents in attachment filenames should be sanitized](https://core.trac.wordpress.org/ticket/22363).
= Scanner =
For existing data, the plugin includes an administration tool to scan and normalize the database. **Important:** before using this tool to normalize, please [backup your database](https://codex.wordpress.org/WordPress_Backups). This is especially important if your database contains non-normalized serialized data, as this plugin uses the same suck-and-see technique as interconnect/it’s [Database Search and Replace Script in PHP](https://interconnectit.com/products/search-and-replace-for-wordpress-databases/) to deal with serialized data, and is fallible.
= And =
A google-cheating schoolboy French translation is supplied.
The plugin should run on PHP 5.2.17 to 7.1, and on WP 3.9.13 to 4.7.1.
The project is on [github](https://github.com/gitlost/unfc-normalize).