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 - で全角半角変換をモダンに行う
しかし、いずれの方法もそれぞれ若干使いにくい面があるので、モジュールを使わずに自力で全角半角変換を行う方法を考えたいと思います。
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)
オープン | 0 point | Link (4) | Trackback (0) | Comment (0)
キーワード
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
- SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (82 PV)
- Google Finance(グーグルファイナンス)- リアルタイム株価情報、金融ニュース、日本株 (10 PV)
- 日銀マイナス金利解除、17年ぶりの利上げ ドル円(USDJPY)は大きく上昇 (9 PV)
- SQLiteのSELECT文で上位 (TOP) n件のデータを取得する (9 PV)
- Google News (グーグルニュース)日本版 (9 PV)
- 安全性重視の完全無料ナンピンマーチンEA「Million Dollar(ミリオンダラー)」 #FX #ゴールド #ビットコイン (6 PV)
- 完全無料のMT5用ナンピンEA「Nanpin K(ナンピンケイ) MT5」をバージョンアップ(Ver 2.04) (4 PV)
- 裁量トレードを半自動化する無料のMT5向け裁量トレード支援ツール(EA)「PositionKeeper MT5」 #FX (4 PV)
- 自作のMT4向け無料EA(口座縛り無し、ブローカー縛り無し、使用期限無し)とゴゴジャン出品中の有料EAの一覧 #MT4 (3 PV)
- [Perl]UTF-8でエンコードされた英数字の全角半角変換を行うコード (3 PV)
今月のアクセスランキング TOP 10
- SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (1469 PV)
- 安全性重視の完全無料ナンピンマーチンEA「Million Dollar(ミリオンダラー)」 #FX #ゴールド #ビットコイン (251 PV)
- Google Finance(グーグルファイナンス)- リアルタイム株価情報、金融ニュース、日本株 (233 PV)
- [FX]高値更新・安値更新でエントリー、MT4向け無料スキャルピングEA「1Scalper」#システムトレード (221 PV)
- 選んではいけないEA #間違いだらけのEA選び (211 PV)
- MT4向け無料ヘッジ(両建て)ツール(EA)「STOPPER FREE」 #自動売買 #FX (144 PV)
- Google News (グーグルニュース)日本版 (137 PV)
- YouTube(ユーチューブ)日本版 - 動画共有、ライブ配信 (135 PV)
- 自作のMT4向け無料EA(口座縛り無し、ブローカー縛り無し、使用期限無し)とゴゴジャン出品中の有料EAの一覧 #MT4 (105 PV)
- SQLiteのSELECT文で上位 (TOP) n件のデータを取得する (75 PV)
アクセス統計
ディレクトリ
関連サイト