Perlで全角半角変換を行う方法

日本語の文章では半角の英数字と全角の英数字、また、半角のカタカナと全角のカタカナが混在していることがよくあります。意味は半角でも全角でも同じですので、コンピュータで処理する場合はどちらかに統一してから処理したいところです。

Perlで全角半角変換を行う主な方法としては、

・標準モジュールのEncode.pmを使う
・Unicode::Japaneseモジュールを使う
・全角半角の変換に特化したLingua::JA::Regular::Unicodeモジュールを使う

などがあります。

Encode.pmは標準モジュールですので比較的使いやすいですが、euc-jp以外の文字エンコードの場合はeuc-jpに変換する必要があります。

Unicode::Japaneseモジュールは、現状では一番使いやすいと思われますが、標準モジュールではないのでレンタルサーバーで動かすWebアプリケーションではちょっと使いにくい面もあります。

Lingua::JA::Regular::Unicodeは、全角半角の変換に特化したモジュールですので非常に軽量ですが、全角半角の変換以外の処理を考えるとuse utf8;しないと動作しないというのはかなり面倒です。

これらのモジュールを使った全角半角の変換のコードについては、以下のブログ記事などに記述されています。

Encodeで全角半角変換
Perl で半角カナと全角カナの変換をする : Serendip - Webデザイン・プログラミング
perl - で全角半角変換をモダンに行う

しかし、いずれの方法もそれぞれ若干使いにくい面があるので、モジュールを使わずに自力で全角半角変換を行う方法を考えたいと思います。

プログラマのための文字コード技術入門 (WEB+DB PRESS plus) (WEB+DB PRESS plusシリーズ)
技術評論社 著者:矢野 啓介


amazon.co.jpのカスタマーレビューを見る
powered by amalink

[2247] Posted by kagahiro at 2012/12/14 23:52:52
オープン | 0 point | Link (4) | Trackback (0) | Comment (0)

キーワード
Perl 全角 半角 変換 モジュール 日本語 

kagahiroのホームページ


Perlで全角半角変換を行う方法 関連リンク

[Perl]UTF-8でエンコードされた文字列の部分文字列を取り出すコード
Perlのsubstr関数ではバイト単位の操作になるので、漢字、ひらがな、カタカナなどの全角文字を文字数で指定して部分文字列を取り出すことができません。それでは不都合なことも多いので、半角英数も全角文字も1文字と...
[Perl]UTF-8でエンコードされた文字の文字コードを表示するプログラム
Unicodeの文字コード表によるとUTF-8の半角英数、全角英数、半角カナ、全角カナの文字コードは以下のようになるようです。英数字の場合は半角と全角の文字がそれぞれ対応していますが、カタカナの場合は半角と全角で...
[Perl]UTF-8でエンコードされた英数字の全角半角変換を行うコード
まずカタカナより比較的プログラミングしやすそうな英数字の全角半角変換から作成します。半角から全角への変換の処理手順は、・半角英数字の場合は、同じ全角英数字に置き換えて戻り値として返す文字列に連結・それ...
Unicodeエスケープシーケンス
Unicodeエスケープシーケンスは、\uXXXX(Xは十六進)の6バイトの形でUnicodeの1文字が表される文字の表記方法で、例えば、「あ」という文字はUnicodeエスケープシーケンスで「\u3042」と表記される。Unicode エスケー...

Perlで全角半角変換を行う方法 トラックバック

トラックバックURL :


Perlで全角半角変換を行う方法へのコメント


詳細の入力フィールドを表示する

おすすめ  (チェックしてコメントすると最新情報に掲載)
コメント :

< 前の投稿      次の投稿 >

アクセスランキング

今日のアクセスランキング TOP 10

  1. 将棋ウォーズスーパープレミアムプラン販売開始、香川愛生女流三段のボイスが選択可能 #将棋 (17 PV)
  2. SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (16 PV)
  3. [食べ物]七草粥(ななくさがゆ) (11 PV)
  4. [C言語]UTF-8でエンコードされた文字列の部分文字列を取り出すコード (7 PV)
  5. [将棋]竜王戦第三局は居飛車振り飛車の対抗型で丸山忠久九段が勝利 #竜王戦 (7 PV)
  6. フリーソフトウェア/オープンソースのタブー (7 PV)
  7. MySQL [書籍] (7 PV)
  8. Sony、ハイエンドEマウントミラーレスカメラ「α9」(model ILCE-9)を発表 (6 PV)
  9. 「マストドン(Mastodon)」ブームでカドカワの株価が上昇、さくらインターネットの株価は上がらず (5 PV)
  10. 世界最大のマストドンインスタンス「mstdn.jp」の管理者nullkal(ぬるかる)さんがドワンゴに入社 (4 PV)

今月のアクセスランキング TOP 10

  1. SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (3997 PV)
  2. [将棋]中学生プロ棋士の藤井聡太四段がNHK杯1回戦で千田翔太六段に勝ちプロデビューから公式戦13連勝 (355 PV)
  3. ウェブページを1回だけリロード(再表示)する方法 (272 PV)
  4. 世界最大のマストドンインスタンス「mstdn.jp」の管理者nullkal(ぬるかる)さんがドワンゴに入社 (197 PV)
  5. [C言語]UTF-8でエンコードされた文字列の部分文字列を取り出すコード (196 PV)
  6. [将棋]竜王戦第三局は居飛車振り飛車の対抗型で丸山忠久九段が勝利 #竜王戦 (180 PV)
  7. 将棋ウォーズスーパープレミアムプラン販売開始、香川愛生女流三段のボイスが選択可能 #将棋 (180 PV)
  8. フリーソフトウェア/オープンソースのタブー (175 PV)
  9. Sony、ハイエンドEマウントミラーレスカメラ「α9」(model ILCE-9)を発表 (167 PV)
  10. [食べ物]七草粥(ななくさがゆ) (155 PV)

アクセス統計

ディレクトリ

関連サイト