PHP の mb_convert_kana でカタカナの「ヴ」をひらがなに変換することはできない

PHP の mb_convert_kana() でカタカナをひらがなへ、ひらがなをカタカナに変換できます。変換オプションを設定すれば全角文字を半角に変えたり、半角文字を全角に変えることができる便利な関数です。

しかし今回「ヴ」が「ゔ」にできませんでした。どうやらカタカナの「ヴ」は問題無いみたいですが、ひらがなの「ゔ」は機種依存文字だそうなので、mb_convert_kana() でも変換できないのかもしれません。具体的には以下のような感じです。

「ヴ」を変換するテスト

カタカナの「ヴ」をひらがなに変換

まずはカタカナの「ヴ」をひらがなに変換しようとしてみます。参考に他に普通のカタカタも含めて試してみます。

1
2
$string = 'プロヴァンス';
echo mb_convert_kana($string, 'c', 'UTF-8');

以下のように「ヴ」だけが変換されませんでした。

ぷろヴぁんす

ひらがなの「ゔ」をカタカナに変換

次はひらがなの「ゔ」をカタカナの「ヴ」に変換します。

1
2
$string = 'ぷろゔぁんす';
echo mb_convert_kana($string, 'C', 'UTF-8');

以下のように「ゔ」だけが変換されませんでした。

プロゔァンス

無理やり変換する方法

無理やり変換する関数

無理やり変換する場合のコードを書いて見ました。

1
2
3
4
5
6
7
8
9
function wb_convert_kana($str, $option, $encoding)
{
    if(preg_match('/c/', $option)) {
        $str = preg_replace('/ヴ/', 'ゔ', $str);
    } else if(preg_match('/C/', $option)) {
        $str = preg_replace('/ゔ/', 'ヴ', $str);
    }
    return mb_convert_kana($str, $option, $encoding);
}

カタカナの「ヴ」をひらがなに無理やり変換

1
2
$string = 'プロヴァンス';
echo wb_convert_kana($string, 'c', 'UTF-8');

ぷろゔぁんす

ひらがなの「ゔ」をカタカナに無理やり変換

1
2
$string = 'ぷろゔぁんす';
echo wb_convert_kana($string, 'C', 'UTF-8');

プロヴァンス

おわりに

機種依存文字に変換してみましたが、実際は「う”」のようにダブルコーテーションを用いて2文字で表現しているところもあるようです。「ぶ」に変換するのもどうかと思いましたがどうでしょうか。いろいろやり方はあると思いますが「ヴ」は普通に使われていますので対応していくと良いと思いました。(※1,2)

※1 例えば「プロヴァンス」はフランス南東部の地域だったりします。
※2 ipadic を見てみても100キーワード弱ありました。

コメント

コメントは受け付けていません。