Perl 5.8 から標準で Encode モジュールが含まれるようになりました。いままで jcode.pl や Jcode.pm を別途インストールしていたのですが、その手間が省け精神的にも楽です。そして何よりも変換速度は早いようです。
Perl 5.8 からは文字コードの取り扱いが変わったようで、Perl 内部で独自の文字コード管理をしております。( 内部的には Unicode? )
Encode モジュール簡単な使い方-てすと
Encode モジュールは、
・Perl 内部文字管理 => Encode モジュール => 出力 ( printf 等 )
というようにフィルタとしても動作することが可能なようです。
新しく実装された( ? ) PerlIO というものを経由して open 関数でも使用できます。
TIPS として書いてますが、よく使い方が分からない所があり、ここに書いてあるのが正しいのかどうか良く分かりません。動作した範囲で書いてみました。
しかし Encode モジュールはまだ動作が良く分からないし、Jcode.pm の方が文字コードをちゃんと判別できるので Encode モジュールは使ってません。
できれば Jcode.pm のように勝手に判別してくれるとありがたいです。
使い方の詳しい方教えて下さい。
スカラ変数に含まれている文字列の文字コードを判別するには Encode::Guess モジュールを使用します。
use Encode::Guess qw/ euc-jp shiftjis 7bit-jis /;
my $data = 'テスト元の文字コードは SJIS';
my $enc = guess_encoding( $data );
if( ref $enc ){
print $enc->name,"\n";
}else{
print $enc,"\n";
}
これで文字コードが表示されます。コンソールには 'shiftjis' と表示されるはずです。しかし文字コードが判別出来ない場合は 'shiftjis or euc-jp' という表示がされます。
判別できない場合は guess_encoding の返り値がオブジェクトじゃなくて、その候補が 'shiftjis or euc-jp' という文字列で返されるようです。( 変なの? )
たとえば上の my $data = '結論'; として見て下さい。'shiftjis or euc-jp' と表示されます。
Jcode.pm を使うと '結論' という文字も 'shiftjis' とちゃんと判別されますが、Encode モジュールだと何故か 'shiftjis or euc-jp' となってしまいます。
この様な書き方もあります。
my $enc = guess_encoding( $data, qw/ euc-jp shiftjis 7bit-jis /);
スカラ変数に含まれている文字列の文字コードを変換するには Encode モジュールに含まれている from_to を使用します。
use Encode qw/ from_to /;
my $data = 'テスト元の文字コードは SJIS';
from_to( $data, 'shiftjis', 'euc-jp' );
print $data;
これで $data の文字列が shiftjis から euc-jp に変換されて出力されました。
from_to を使用して
文字コードの変換はできましたが、ここで問題は from_to を使用する時に、変換元の文字コードを指定しなければならない事です。
つぎに変換元の文字コードを自動判別してから、希望の文字コードへ変換して見ます。
use Encode qw/ from_to /;
use Encode::Guess qw/ euc-jp shiftjis 7bit-jis /;
my $data = 'テスト元の文字コードは SJIS';
my $enc = guess_encoding( $data );
my $from= $enc->name;
my $to = "euc-jp";
from_to( $data, $from, $to );
print $data;
Encode::Guess モジュールを使用して文字コードを自動判別してから文字コードを変換しました。これなら便利ですね。
変換できる日本語の文字コードは以下のようにすると得る事が出来ます。
use Encode qw/ from_to /;
@list = Encode->encodings("Encode::JP");
foreach my $i ( sort @list ){ print "$i\n"; }
Encode::Alias モジュールを使用して
文字コードの alias を定義することができます。
このモジュールを使用すると、
use Encode::Alias;
define_alias( 'Shift_JIS' => 'shiftjis' );
my $data = 'テスト元の文字コードは SJIS';
from_to( $data, 'Shift_JIS', 'euc-jp' );
という使い方が出来ます。
IE6 や MSN メッセンジャーをインストールすると常駐するスパイウェアらしい。c:\winnt\
loadqm.exe の名前を変更して起動しないようにする。
レジストリを書き換えても起動しないようにできるが、面倒なのでファイル名を書き換えてしまう。
ガンマ補正をするらしい。スタートアップから削除。
C:\Winnt\system32\mspmspsv.exe
Windows Media Player7以降をインストールすると追加されるサービス。SDMI準拠のポータブルデバイスに音楽を転送する予定が無いのならば「手動」 あれば「自動」
mspmspsv.exe の起動を留められる。
qttask.exe のファイル名を変更する。
Money2002 をインストールすると入る。IE を起動しツールバーから
Money サイドを選択する。
Money サイドのヘルプ => 設定を選択し、
Money サイドを開かないを選択する。
urlmap.exe の起動を止められる。
どこか忘れましたが掲示板で見ました。引用します。
>以下の実行でオンラインでのadobeへの情報送信を防げます。
>
>Illustrator 9 or Photoshop 6.0 以降
>
>インストールする前にネット接続を切ります。
>インストール後、システムフォルダから以下のものを削除する事。
>
>AdobeOnline Inventory
>Adoberegistrationenjpn.html
>(日本語版の場合、以下の3つはありません)
>Adoberegistrationeng.html
>Adoberegistrationenu.html
>Adoberegistrationfra.html
>AdobeWeb.dll
>AOM(移動)
スクロールさせた時に、勝手にどんどんスクロールしてしまう不具合を解消する ( 処理のタイミングが間に合わないらしい )
MouseWare 本体である EM_EXEC.exe の優先度を高にする。
レジストリの
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\EM_EXEC
の内容が
"C:\PROGRA~1\Logitech\MOUSEW~1\SYSTEM\EM_EXEC.EXE"
になってたとすると、それを
"cmd /c start /d "C:\PROGRA~1\Logitech\MOUSEW~1\SYSTEM\" /high EM_EXEC.EXE"
と書き換える。
1.
Snapshot をとる
2. OS を起動する
3. 作業をする
4. 電源を切る
5. 選択 Just Power Off
6. 再起動
7. 3. の作業は更新されている
8. 作業をする
9. 電源を切る
10.選択 Revert to
Snapshot
11.再起動
12.状態は 1. に戻っている
13.作業をする
14.電源を切る
15.選択 Take
Snapshot
16.
Snapshot の作成時間が更新される
16.再起動
17.13. の作業は更新されている
18.電源を切る
19.選択 Just Power Off
20.Remove snapshot
21.1 以前の状態に戻る
常に一定の状態を保ちたい場合、
1. 一定に保ちたい状態に OS をする。
2. snapshot を取る
3. Virtual Machine Configuration -> options -> snapthot
Lock this snapshot にチェック
When Powering Off -> Revert to the snapshot
を選択する。
Windows 2000 で Netmeeting のデスクトップ共有を有効にして有り、外部から接続した場合に以下の事を実行するとアイコンの色が 16色になってしまう。
デスクトップの色を 256色に変更する。
1. 窓の手でアイコンの色を High カラーに変更する。
2. Netmeeting のデスクトップ共有を無効にする
3. 一旦ログオフか再起動をすると元に戻る。
PPTP の接続方法で stateless ( historyless ) と stateful という方法があります。
Linux で ppp + poptop で接続する場合は要注意。stateful だと ppp のバグで接続できません。
Win2000とかではデフォルトでstatelessで、
HKLM\SYSTEM\CurrentControlSet\Services\NdisWan\Parameters
の historyless DWORDプロパティ値に 0 を設定すると stateful になります
パケットがロストするかもしれない環境では stateless に設定した方が良いパフォーマンスが出るようです。
レジストリ
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
新しい DWORD 値:「NoInstrumentation」を16進で「1」に設定する
ファイル名を指定して実行で drwtsn32 と入力しワトソン博士を起動する。
オプションをすべて外す
ARISAKA-AA 11pt
TV 視聴中に音が消えてしまう不具合は DirectX 9.0a => 9.0b へバージョンアップした後、Non-NTSC TV Tuner Hotfix をあてたら直りました。
Hotfix
http://www.microsoft.com/downloads/details.aspx?FamilyID=8dfd1b6d-
e177-4a0e-91d0-b4310675b02b&displaylang=ja
/~.vimrc ファイルに
set tabstop=4
と書き込む。タブカラムを 8 にする場合は tabstop=8 にする。
特定のファイル名・拡張子のファイルを探す
find / -name "*.eml"
出力フォーマットを指定する。フルパスと日付を表示
find / -printf "%p %Ac\n"
"Thu Sep 20 15:46:58 2001" のタイムスタンプを持つファイルを
探し、フルパスを allnimda.txt ファイルへ出力
find / -printf "%p %Ac\n" |grep "Thu Sep 20 15:46:58 2001" |cut -d " " -f1 > allnimda.txt
↑nimda に感染したときにこんな事したなぁ。
昔こうやって Linux で
CD-R を焼いた。いまはどうだか知らん。
# mkisofs -a -d -D -N -J -T -o /home/backup.img /home/backup/Software\ Archive/
# cdrecord dev=0,0 speed=2 -v -data /home/backup.img
kernel の make で、stdarg.h , varargs.h , stddef.h が見つからない
gcc-3.2-1.i386.rpm を使っている場合に、kernel-2.4.19 以降をコンパイルする際に、必要なヘッダファイルが読み込めない件について。
解決策 1
ソースディレクトリ直下の Makefile を以下のように修正します。
85 #
86 # standard CFLAGS
87 #
88
89 CPPFLAGS := -D__KERNEL__ -I$(HPATH) -I/usr/lib/gcc-lib/i386-redhat-linux/3.2/include
90
91 CFLAGS := $(CPPFLAGS) -Wall -Wstrict-prototypes -Wno-trigraphs -O2 \
92 -fno-strict-aliasing -fno-common
93 ifndef CONFIG_FRAME_POINTER
94 CFLAGS += -fomit-frame-pointer
95 endif
96 AFLAGS := -D__ASSEMBLY__ $(CPPFLAGS)
97
単純に転送する。コピーはサーバに残しておく。
:0c
!
hoge@hogehoge.com
Last Updated : 2006-4-15
Copyright © 2006 Mikio Fukushima. All rights reserved.
http://smart-pda.net
Converted by Outliner