有限会社ミスティーネットPerl・CGI講座 パール・CGIレッスン MISTY-NETレンタルサーバー・PERLプログラミング講座 CGI&PERL究極のレシピ

管理運営:有限会社ミスティーネット

| HOME | ご利用について | 推奨環境 | リンクに関して | 免責/規約 | お問合せ | ミスティーネット | リンク集 |
Perl言語リファレンス

ミスティーネットPerl・CGI講座/基本編
ミスティーネットPerl・CGI講座/基本編
始めに 始めに
変数について 変数について
処理の制御1 処理の制御1
処理の制御2 処理の制御2
配列の処理 配列の処理
ハッシュの処理 ハッシュの処理
数値の扱い 数値の扱い
文字の扱い 文字の扱い
時間の処理 時間の処理
サブルーチン サブルーチン
ファイルの処理 ファイルの処理
ディレクトリの処理 ディレクトリ処理
CGIについて CGIについて
漢字の処理 漢字の処理
    (文字コード)
Cookie の処理 Cookie の処理
正規表現1 正規表現1
正規表現2 正規表現2
演算子について 演算子について
ライブラリ ライブラリ
デバッグ デバック
環境変数について 環境変数
ミスティーネットPerl・CGI講座/基本編

ミスティーネットPerl・CGI講座/応用編
ミスティーネットPerl・CGI講座/応用編
カウンターを作ってみよう カウンターを
     作ってみよう!
ミニゲームを作ってみよう ミニゲームを
     作ってみよう!
ミスティーネットPerl・CGI講座/応用編

ミスティーネットPerl・CGI講座/WEB講座一覧
ミスティーネット
HTML講座 HTML講座
スタイルシート講座 スタイルシート講座
JavaScript講座 JavaScript講座
UNIXコマンド講座 UNIXコマンド講座

ミスティーネット
ラブラブメールでツーショット

人気サイトランキング

人気サイトランキング

8daysランキング

  HOME >> 漢字の処理について
  1. 文字コードについて
  2. 文字コードを変換する
  3. 半角 → 全角変換
  4. 半角カナ → 全角カナ変換
■ 文字コードについて
文字コードとは、数字しか扱えないコンピュータ上で文字を扱うために作られた、数字と文字のコード表です。 1つの文字に対して、1つの16進数の数字が割り当てられています。

文字コードがややこしいのは、いくつもの文字コードの規格があることです。
代表的なものに下記の4つがあります。
○ JISコード ・・・ メールによく使われます。
○ EUCコード ・・・ UNIX プラットフォームでよく使われます。
○ Shift_JIS ・・・ Windows プラットフォームでよく使われます。
○ unicode ・・・ 世界中の文字を一つのコード体系にまとめたものです。

Perl で文字コードを利用する場合は、基本的に、EUCコードがよいでしょう。
例外的に、プラットフォームが Windows の場合には、シフトJISコードを使うとよいでしょう。




Perl で日本語を扱う場合、日本語変換ライブラリ(jcode.pl)を使用すると便利です。
jcode.pl は下記ページから入手できます。

   → http://srekcah.org/jcode/ 現在(2003/04/21) の最新バージョンは 2.13 のです。


[jcode.pl の使い方]
require "jcode.pl";    ← ライブラリを組み込む

$value = '日本語データ';
&jcode'convert(*value,'euc');    ← jcode.pl のサブルーチン(関数)を使用する
上記プログラムでは、$value の日本語文字を euc コードに変換しています。




■ 文字コードを変換する
&jcode'convert() では、入力された文字の文字コードを変換することが出来ます。
[書式]
&jcode'convert(文字列, '文字コード');    ← Perl4 対応
jcode::convert(文字列, '文字コード');    ← Perl5 対応

文字列の文字コードを指定したコードに変換します。
文字列は変数で指定しても構いません。
指定できる文字コードは下記の3つです。


○ sjis ・・・ シフトJIS (Windows プラットフォームの場合)
○ euc ・・・ ECUコード (UNIX プラットフォームの場合)
○ jis ・・・ JISコード (文字列をメールで使用する場合)

[文字コードの変換 (EUC)]
require "jcode.pl";    ← ライブラリを組み込む

$data = '漢字データ';
jcode::convert(\$data,'euc');    ← $data をEUCコードに変換します(Perl5用)

   → &jcode'convert(*data,'euc');    ← $data をEUCコードに変換します(Perl4用)


[文字コードの変換 (JIS) ・・・ プログラムでメールを送信する場合]
require "jcode.pl";    ← ライブラリを組み込む

$subject = 'メールの件名です';
$message = 'メールの本文です';
jcode::convert(\$subject, 'jis');    ← メールの件名をJISコードに変換(Perl5用)
jcode::convert(\$message, 'jis');    ← メールの本文をJISコードに変換(Perl5用)

   → &jcode'convert(*subject, 'jis');    ← メールの件名をJISコードに変換(Perl4用)
   → &jcode'convert(*message, 'jis');    ← メールの本文をJISコードに変換(Perl4用)
プログラムからメールを送信する場合は、文字コードをJISコードに変換して送信する必要があります。
また、メールの件名は本文とは別に変換を行なってください。





■ 半角 → 全角変換
&jcode'tr() を使うと、半角文字を全角文字に変換することが出来ます。
[書式] &jcode'tr(文字列, 半角文字列, 全角文字列);

文字列を半角から全角にに変換します。
文字列は変数で指定しても構いません。

require "jcode.pl";    ← ライブラリを組み込む

$from = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
         . "0123456789!\"#\$%&'()*+,./:;<=>?\@[\\]^_`{|}~-";

$to = "abcdefghijklmnopqrstuvwxyz"
       . "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
       . "0123456789"
       . "!”#$%&’()*+,./:;<=>?@[¥]^_‘{|}〜−";

$message = "Hellow! Everyone.";
jcode::tr(\$message, $from, $to);    ← 半角から全角へ (Perl5用)

   → &jcode'tr(*message, $from, $to);    ← 半角から全角へ (Perl4用)
ここでは、文字列 「Hello! Everyone.」が全角の 「Hello!Everyone.」に変換されます。




■ 半角カナ → 全角カナ変換
半角カナを全角カナに変換する場合は、&jcode'convert() を使います。
[書式] &jcode'convert(文字列, 変換したい文字コード, 文字列の文字コード, 'z か h');

4番目の引数に「z」を入力すると半角カナから全角カナへ変換します。
「h」を入力すると逆の変換を行ないます。
文字列は変数で指定しても構いません。

require "jcode.pl";    ← ライブラリを組み込む

$message = 'ハンカク文字は使えるかな?';
jcode::convert(\$message,"sjis","", "z");
   ↑ $message 内の半角カナ文字を全角カナ文字に変換 (Perl5用)

&jcode'convert(*message,"sjis","", "z");
   ↑ $message 内の半角カナ文字を全角カナ文字に変換 (Perl4用)
ここでは、文字列 「ハンカク文字は使えるかな?」が全角の 「ハンカク文字は使えるかな?」に変換されます。




← 前のページへ戻る 次のページへ →


| HOME | ご利用について | 推奨環境 | リンクに関して | 免責/規約 | お問い合わせ | ミスティーネット |
(C)Copyright 2002 有限会社ミスティーネット Inc. All Right Reserved.