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キーワード弱ありました。
関連記事
- PHP の mb_convert_kana() で上手く変換できない場合は第三引数に文字コードを設定する
- PHP で機種依存文字をフィルタリングする関数を作ってみた
- PHPで全角カタカナを全角ひらがなに、全角ひらがなを全角カタカナにする
- Ktai style で見出しに画像を使っている際に alt 属性の中身だけを抜き出し img タグを消してコンテンツを出力するコード
- PHP で DateTime 型を文字列の日付に変換する方法と関数
- vim で特定の文字列を改行に改行を特定の文字列に置き換える方法
- Flickr API を使って画像を検索して取得する高性能な PHP のライブラリ書いておいたよ
- RSS フィードから必要の無い記事を様々な条件でフィルタリングして再配信させるコード
- PHP内でXML宣言を入れるとエラーになる
コメント
コメントは受け付けていません。