さとーC++ぶろぐ

アクセスカウンタ

zoom RSS Perl (CGI)で 文字コードUTF-8への変換を気軽に使うライブラリ

<<   作成日時 : 2006/03/17 17:29   >>

なるほど(納得、参考になった、ヘー) ブログ気持玉 5 / トラックバック 1 / コメント 7

Perl (CGI)で 文字コードUTF-8への変換を気軽に使うライブラリを開発した。

ダウンロード:sutf8.pl
著作権はさとーしが持ちますが,完全に利用フリーです。

動作条件として,実行には以下のファイル(Unicode Consortiumで公開されているMicrosoft CP932の変換表)が sutf8.pl と同じディレクトリに必要です。
ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP932.TXT

機能としては,Shift-JISからUTF-8への変換とその逆が出来ます。
ただし, Perl では,EUC-JPの方がShift-JISよりプログラムのトラブルが少ないので,
プログラム内部ではEUC-JPで処理を行い,UTF-8に変換するときは,
jcode.pl とかのライブラリを使って,Shift-JISに変換する必要があります。


プログラムの例:

require 'jcode.pl';
require 'sutf8.pl';

$str = "あいうえお";
&jcode'convert(*str,'sjis'); # Shift-JISに変換
&sjis2utf8(*str); # UTF-8に変換

# これで, $strは,UTF-8に変換済みです。

# UTF-8からShift-JISやEUC-JPにするには

&utf82sjis(*str); # Shift-JISに変換
&jcode'convert(*str,'euc'); # EUC-JPに変換

# とすれば,OK



問題点:
そのため,Shift-JISに含まれていない文字を扱うと文字が壊れます(汗

プログラムの保障(バグ,パフォーマンスの問題対処)はいたしません・・・。
 また,CP932.TXTの対応表では,Shift-JISとUNICODEは完全に1対1では無く,
1対2以上になっているものが 398個ぐらいあります・・・。そのため,
Shift-JISからUTF-8への変換は問題ありませんが,UTF-8からShift-JISへ
変換したときに,部分的に元に戻らないことがあります。

テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ
気持玉数 : 5
なるほど(納得、参考になった、ヘー) なるほど(納得、参考になった、ヘー) なるほど(納得、参考になった、ヘー) なるほど(納得、参考になった、ヘー)
ナイス

トラックバック(1件)

タイトル (本文) ブログ名/日時
[WEB制作]Perl のメールフォーム CGI を UTF-8 のページに設置する
Perl のメールフォームって普通 EUC で書かれていて、Shift-JIS のページに設置することを前提にしてあるものが多いらしい。 今回、同僚がなぜか PHP を使えないサーバーをレンタルしてしまったおかげで、慣れない Perl の CGI を一晩のうちになんとか設置しなくてはならな ...続きを見る
minorio のプログラミング・メモ
2007/12/10 16:38

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(7件)

内 容 ニックネーム/日時
初めまして。IO(いお)と申しますです。

NiftyのサーバでWikiを運営していて、UTF-8エンコードしたWikipediaへのリンクを何とか生成したいと探していたら、こちらへ辿り着きました。

苦労するも実装出来たみたいなので、ライブラリを利用させて貰う旨、また、その事についてページ内で書いている旨お知らせしておきます(Wikipediaプラグインのところです)。

Google Mapsを利用した掲示板、見ましたがなかなか面白いですね。
ではでは。
IO
URL
2006/05/23 18:33
利用,ありがとうございます。(^^
さとーし
2006/05/25 20:52
Shift-JISの半角カナ文字の変換に対応する。
さとーし
2006/12/25 13:18
ダウンロードが出来ないのですが・・・
night
2007/07/14 12:12
すみません。サーバの設定が変わってしまったために,見えなくなってしまったようです。

ダウンロードできるように修正しました。
さとーし
2007/07/17 10:30
簡単に変換できたので感激しました。
使わせていただきます!
ありがとうございます。感謝!
れん
2007/10/25 22:50
はじめまして。
Geeklogにユニコードテキストを読み込ませるため既存のプログラムを改良していたんですが、ユニコード対応が初めてで困っている時に貴サイトをみつけました。
sutf8.plを使わせていただき大変助かりました。ありがとうございました。

ユニコード変換した文字列を配列に入れて処理する時になかなかうまくいきませんでしたが、最終的にSJISの文字列を一旦ファイルに書き込んで、再度読み込んでsutf8.plでUTF-8に変換し、別のファイルに書き込むというやりかたでうまく行きました。

あと、処理するプログラムと違う階層(上位)にsutf8.pl等を置くとどうもうまく行かないようでした。処理するプログラムと同じ階層に置くといけたりしました。

ちゃんと検証したわけではないので間違っていたらごめんなさい。参考になればと。

ブログでも紹介させて頂こうと思います。
ありがとうございました。
kland
2008/08/01 14:14

コメントする help

ニックネーム
URL(任意)
本 文
Perl (CGI)で 文字コードUTF-8への変換を気軽に使うライブラリ さとーC++ぶろぐ/BIGLOBEウェブリブログ
文字サイズ:       閉じる