トップページ > 記事閲覧
exec(path,Arg)
日時: 2004/12/11 06:36
名前: 南無

exec(path,Arg)でArgに日本語等の2バイト文字を使うと文字化けします

if(_jsaCScript.context.isTextSelected){
var arg1 = window.getSelection();
var arg2 = "/k echo " + arg1;
var path = "c:\\windows\\system32\\cmd.exe";
_jsaCScript.exec(path, arg2);
}
適当にこんなコードを書いてみて確認しました
ちょっと調べて
process.run(false, arguments, arguments.length);
が怪しいと思ったのですがこれらが中で何をしているかのドキュメントを見つけられず挫折しました
どのように修正すればよいのでしょうか?

# pathも日本語が混じるとダメかも…
メンテ
Page: [1]

Re: exec(path,Arg) ( No.1 )
日時: 2004/12/11 08:04
名前: HideAway@管理人

ご迷惑おかけします。
文字コード種の違いからのはず。。
一般的に日本語は(Windowsでは)Shift_JIS、Mozilla内部ではUTF-8(16だっけ?曖昧。)
すいませんが、もう少々お時間をください。

1.9.1.0.3の動作をもう少し検証してからと思いまして
今回、文字コード変換の導入は見送りました。

下記コードでNext予定Versionで動作確認いたしました。
情報ありがとうございます。

http://hideaway.under.jp/Firefox/images/echo.png

/*** Next version 向け Echo 日本語 Check Script ****/

if(_jsaCScript.context.isTextSelected){
var arg1 = window.getSelection().toString();

var path = "c:\\こまんど\\cmd.exe";

/* 次で実装予定Commandです。 */
arg1 = _jsaCScript.convertCharCodeFrom( arg1, "shift_jis" ); //FirefoxからWindowsで使う前に文字コード変換

var arg2 = "/k echo "+arg1;
_jsaCScript.exec(path, arg2);}

メンテ
Re: exec(path,Arg) ( No.2 )
日時: 2004/12/17 06:50
名前: 管理人

とりあえず、1.9.1.1.0にて動作するようになったと思います。

Firefoxで得た文字列をWindiwsで使いたい場合は
_jsaCScript.convertCharCodeFrom( arg1, "shift_jis" );
にてUnicodeからShift_JISに変換。
上記Exec等。他。

Windiwsで得た文字列をFirefoxで使いたい場合は
_jsaCScript.convertCharCodeTo( arg1, "shift_jis" );
にてShift_JISからUnicodeに変換。
alert等。他。

で日本語も文字化けしないで済むと思います。

ちなみにPathに日本語が含まれてますが。
これはScriptファイルがShift_JISなためそのままExecに入力してかまいません。
メンテ
Re: exec(path,Arg) ( No.3 )
日時: 2004/12/18 17:48
名前: 南無

1.9.1.1.0で確認しました。ありがとうございます。
ところでちょっと気付いたんですがexecで"が\"に変換されてしまいますね。


メンテ

Page: [1]

題名 スレッドをトップへソート
名前 E-Mail
URL パスワード (記事メンテ時に使用)

   クッキー保存