AppleScriptでURLエンコードするにはどのようにすれば良いのでしょう?

Perlを使えばできそうなのですがうまくいきません。例えば”あ”をエンコードしようとして、do shell scriptコマンドから
echo 'あ' | perl -pe '~s/([^?w ])/"%".unpack("H2", $1)/eg;'
としても"%a4%a2"が正しいのですが、"%e3%81%82%0a"が返ってきます。

暗ーいトンネルに入ったような状態です。どなたかお力をお借りできないでしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (1件)

echoの出力の結果がUTF-8になってしまっているようです(%e3%81%82%0aをUTF-8としてデコードすると'あ'+LFになります)。


http://developer.apple.com/ja/technotes/tn2065.h …
http://www.tagindex.com/tool/url.html

期待されている結果はEUCなので、どこかで文字コードを変換する必要がありますね。
MacOSXはほとんど使ったことが無いので詳しいことはわかりませんが、iconvを使えばできるかもしれません。
http://homepage.mac.com/travellers/blog/C7461348 …

参考URL:http://developer.apple.com/ja/technotes/tn2065.h …
    • good
    • 0
この回答へのお礼

ありがとうございます!以下のようにiConvを使ってできました。

echo 'あ'| iconv -f UTF8 -t EUCJP | perl -pe '~s/([^?w ])/"%".unpack("H2", $1)/eg;'

悩んだ日々はなんだったのでしょう…。本当に助かりました。

お礼日時:2005/03/07 22:56

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Q自分のPCにIISを入れたときの、配布CGIの !/usr/bin/perl って?

よく無料で配布されている、
掲示板とかの初めの行に !/usr/bin/perl 
をプロバイダにあわせて直してくださいと
記述がありますが、、

自分のPCにIISをインストールして
運用したいとき、自分のPCがプロバイダ(?)
なわけで、どのように設定すればよいのでしょうか?

Aベストアンサー

何でもいいです。
!/usr/bin/perl 
でも
!/usr/local/bin/perl 
でも。
元々これはLinuxサーバ上での法則のようで、Windows上では無視されるようですよ。

参考URL:http://www.lira.co.jp/t-room/xp_server/

QWindows2008環境 'DATE /t'

いつも大変御世話になっております。

Windows2008環境で以下構文が入ったバッチを稼動予定です。

FOR /F "tokens=1 delims= " %%i in ('DATE /t') do SET TEST=%%i
Echo %TEST%

上記場合、Windows2000・2003では "YYYY/MM/DD"が表示されます。
※YYYY:当年 MM:当月 DD:当日

Windows2008でも表示可能でしょうか?

Windows2008がないので、どうしても検証ができません。

もしご存知の方がいらっしゃるようでしたら、お手数ですが
実現可能かどうかをご回答願いますでしょうか?

以上、何卒宜しくお願い致します。

Aベストアンサー

Windows Server 2008 R2で確認しましたが、日本語版の初期状態であれば同じ表示になりました。
ただし、コントロールパネルで表示形式は変更できます。
また、単に日付を取得したいだけなら、環境変数DATEを参照するだけで済みます。

QPostgresSQLにPerlをインストールしようとすると′競合'していますというエラーが。。。

始めて投稿させていただきます。
新しい会社に入社したら何故かPostgresSQLにPerlを使えるようにすることになりました。コンピュターとは今まで無縁でしたので、基本的なことを聞くことになるかもしれませんが、よろしければ教えてください!!

Linux ベースのSQLにPerlをインストールしようとすると、

ファイル /usr/share/man/mann/while.n.gz (パッケージ tcl-8.3.5-88 から)は、パッケージ tcl-8.4.6-0vl1からのファイルと競合しています。

というメッセージが連なって出て行きます。

なるほど パッケージtcl-8.4.6-0vl1 からのファイルを消せばいいのかなと find / -name tcl-8.4* コマンドをうつと、

そのようなデクトリやファイルはありません

とかえってきます。それならばと locate tcl-8.4* コマンドで探しますが、doc しか見付かりません!

どうすればいいのか、何か良い案があれば教えていただきたいです。
突然で申し訳ないですが、よろしくお願いいたします。

始めて投稿させていただきます。
新しい会社に入社したら何故かPostgresSQLにPerlを使えるようにすることになりました。コンピュターとは今まで無縁でしたので、基本的なことを聞くことになるかもしれませんが、よろしければ教えてください!!

Linux ベースのSQLにPerlをインストールしようとすると、

ファイル /usr/share/man/mann/while.n.gz (パッケージ tcl-8.3.5-88 から)は、パッケージ tcl-8.4.6-0vl1からのファイルと競合しています。

というメッセージが連なって出て行きます。

なるほど パ...続きを読む

Aベストアンサー

Vine か Redhat ですかね?・・・ちょっと整理しましょう。

まず
> Linux ベースのSQLにPerlをインストールしようとすると
とありますが、SQL に Perl をインストールというのは表現としておかしいです。
Linux のシステムに Perl をインストール、ということですよね?

それと、Perl をインストールする、とおっしゃっていますが
実際に入れているのは、Tcl ですね。

で、メッセージの意味は、Tcl-8.3.5 を入れようとしたら、別バージョンの Tcl-8.4.6 によって必要なファイルが既に入ってますよ、ということです。
一般的には、この状態であれば Tcl-8.3.5 はインストールする必要はないのでは、と思いますが・・・

最終的な目標をもう少し明確に提示していただいたほうが、アドバイスや回答がつきやすいと思います。

PostgreSQL に Perl インターフェイスを・・・
ということであれば、下の URL が参考になるかもしれません。

参考URL:http://osb.sra.co.jp/PostgreSQL/7.3/perl.html

Vine か Redhat ですかね?・・・ちょっと整理しましょう。

まず
> Linux ベースのSQLにPerlをインストールしようとすると
とありますが、SQL に Perl をインストールというのは表現としておかしいです。
Linux のシステムに Perl をインストール、ということですよね?

それと、Perl をインストールする、とおっしゃっていますが
実際に入れているのは、Tcl ですね。

で、メッセージの意味は、Tcl-8.3.5 を入れようとしたら、別バージョンの Tcl-8.4.6 によって必要なファイルが既に入ってますよ、...続きを読む

Qruby "\001\376".unpack("C*") => [1, 254]の意味

"\001\376".unpack("C*") => [1, 254] の
[1, 254]ってどういう数字を意味するのですか?8ビット整数なのに配列で結果が出ていることの意味がわかりません。ご教授ください。

Aベストアンサー

"\001\376"
は、バイナリ文字列で
"C*"

バイトとして数値を取り出し配列にする
ということだと思います。
\376は、8進数で、10進にすると254になります。
見当違いだったらすみません。

QAccessVBAで実行時エラー'429'が出ます

ACCESS2000,WindouwsME
ACCESSから既存のEXCELブックを呼び出そうとしていますが、
  
       略
EXCEL名 = S2 & "XXX.xls"
Set xls = GetObject(EXCEL名, "Excel.Sheet")
       略

の、2行目で以下のエラーが出てしまい困っています。

実行時エラー'429'
ActiveXコンポーネントはオブジェクトを作成できません。

動かすパソコンの環境で、出る時と出ない時があるようです。
VBEのツールメニューから参照設定を確認しているつもりですが、
ここの理解も含めて原因が良くつかめません。
解決策をコメントできる方がおられましたらお願いいたします。

Aベストアンサー

参考になるようなURLを見つけました。
http://moug.excite.co.jp/skillup/opm/opm05-05.htm
「すでにWordが起動しているときにはそのまま処理を続行しますが、未起動のときには番号429のエラーが発生します。」
ただし自作テストで
Sub test01()
Dim x As Object
Set x = GetObject("c:\My Documents\aa1.xls")
x.Activate
With activeworkbook
MsgBox x.worksheets("sheet1").range("a1").Value
End With
Set x = Nothing
End Subでテストすると、その時エクセルを起動していないがうまく行きました。
ただAccessのモジュールの画面でツール-参照設定-MicrosoftExcel9.0ObjectLibraryにチェックを入れて
いますが。


人気Q&Aランキング

おすすめ情報