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キーワード弱ありました。
コメント