prepress-tips
applescriptの編集
最終更新:
prepress-tips
-
view
最終更新日時: 2010/04/18
applescriptを windowsで編集する
macから windowsへ
- まず スクリプトエディタで テキスト形式で保存する。
これを テキストエディタで開いて 別名で保存する。- このとき テキストのエンコーディングを Shft JIS にする。
- エンコーディングがグレーアウトするときは
テキスト中に Shft JIS に変換できない文字があることを意味しており
変換できない文字を 探して 補正する。
- Shft JIS にうまく変換できても
もう一度macに戻すと文字化けしてしまう文字 が残っている可能性があるので
そのまま mac用のapplescriptに再変換し( 次項参照 )
さらに rekisa や diff , fc などで 照合確認して 補正する。
windowsから macへ
- shift_jisのスクリプトを 以下のプログラムで applescriptファイルに変換する。
- 変換したいスクリプトを batファイルにドラッグすると
同名のapplescriptファイルが batファイルと同じフォルダにできる。 - プログラム中で 文字コード変換と 文字化けの補正 を行うが
最小限の補正しかしないので 必要があれば 適当に修正すること。 - perlのバージョンは 5.8 。
- 変換したいスクリプトを batファイルにドラッグすると
@echo off
cd /d "%~dp0"
perl "%~n0.pl" %1 > "%~n1.applescript"
rem pause
cd /d "%~dp0"
perl "%~n0.pl" %1 > "%~n1.applescript"
rem pause
use Encode qw/encode decode/ ;
binmode( STDOUT ) ;
binmode( STDOUT ) ;
my @k = ( '≦' , '≧' , '¬' , "\\" ) ;
my @v = ( "\x64\x22" , "\x65\x22" , "\xac\x00" , "\xa5\x00" ) ;
for( @k ) {
$_ = encode( 'ucs2' , decode( 'sjis' , $_ ) ) ;
$_ = pack( 'v' , unpack( 'n' , $_ ) ) ;
}
my @v = ( "\x64\x22" , "\x65\x22" , "\xac\x00" , "\xa5\x00" ) ;
for( @k ) {
$_ = encode( 'ucs2' , decode( 'sjis' , $_ ) ) ;
$_ = pack( 'v' , unpack( 'n' , $_ ) ) ;
}
print "\xff\xfe" ;
while( <> ) {
$_ = encode( 'ucs2' , decode( 'sjis' , $_ ) ) ;
my @s = m,[\x00-\xff][\x00-\xff],g ;
@s = map { pack( 'v' , unpack( 'n' , $_ ) ) } @s ;
for( @s ) { my $n = 0 ; for my $k ( @k ) { $_ eq $k && ( $_ = $v[ $n ]) ; $n++ } }
print @s ;
}
while( <> ) {
$_ = encode( 'ucs2' , decode( 'sjis' , $_ ) ) ;
my @s = m,[\x00-\xff][\x00-\xff],g ;
@s = map { pack( 'v' , unpack( 'n' , $_ ) ) } @s ;
for( @s ) { my $n = 0 ; for my $k ( @k ) { $_ eq $k && ( $_ = $v[ $n ]) ; $n++ } }
print @s ;
}