NFDをNFCに変換

Macでは濁点などの日本語はNFD形式(本体の文字と濁点を別々の文字としエンコードする形式)で扱われるのに対して、Windowsなど他のOSではNFC形式(本体の文字と濁点を1つの文字としてエンコードする形式)で扱われるので、表示のされ方が異なります。

そこで、Mac・Windows両方で統一した表示のされ方になるようNFD形式をNFC形式に変換します。

PHPではNormalizer::normalize()関数を使い変換します。 (php-intlを入れている必要があります)

 if (Normalizer::isNormalized($input, Normalizer::FORM_D)) {
        $input = Normalizer::normalize($input, Normalizer::FORM_C);
 }