お仕事: 2009年1月アーカイブ

まいった。(^^;

ActionScript で日本語コード変換でハマってます。
この糞忙しいのに、今日一日を棒に振ってしまったぁぁぁぁぁ・・・

WEB2MEMOで公開されている日本語文字コード変換ライブラリ『Jcode』を使って変換しようと思ってるのだがうまくいかん・・・

例えば、↓こんな感じで、Shift_JIS で書かれている HTML ソースを取ってきて、Shift_JIS→UTF-8 変換を行って表示したいとすると、

import com.web2memo.text.Jcode;

private function startProc():void {

    var req:URLRequest = new URLRequest("http://www.exsample.jp/index.html");
    var loader:URLLoader = new URLLoader(req);
    loader.addEventListener(Event.COMPLETE,loadComp);
    
}

private function loadComp(evt:Event):void{

    var loader:URLLoader = evt.target as URLLoader;

    var byteArray:ByteArray = new ByteArray();
    byteArray.writeMultiByte(loader.data, "shift_jis");

    var enc:String = Jcode.getInstance().detectEncode(byteArray);
    trace("EncCD=" + enc);

    var src:String = Jcode.getInstance().SJIStoUTF8(byteArray);
    trace("Source=" + src);

}

・・・で良いのかと思ったら、EncCD は EncCD=Shift_JIS と表示されるけど、src は化け化けで表示される。
Jcode.getInstance().SJIStoUTF8(byteArray) が効いてないということか。

例えば、

<!----- デジタルパンフレット用追加スクリプトここから----->
 ↓
<!----- ?f?W?^???p???t???b?g?p??A?X?N???v?g?±?±?c?c----->

こんな具合だ。

うーむ・・・わからん。

何かの間違いでたまたまこのブログに流れ着いた識者の方。ぜひご教示くださいませ。(^^;

ちなみに日本語変換が必要だと思ったのは、Shift_JIS や EUC-JP で書かれた「狂った」RSS フィードに対応するため。
でも、そもそも、RSS フィードを Shift_JIS や EUC-JP で書くのがおかしいんだから、本当は対応しなくても良いんだよな。

ちゅーことで、水曜日中には動く形にしたいので、取りあえず UTF-8 のみ対応の形で良いだろう。(それで、99.9% の RSS フィードは読めるはずだから)


ActionScript用日本語文字コード変換ライブラリ『Jcode』
http://web2memo.blog120.fc2.com/blog-entry-221.html

プログラムの中で自動でパスワード付きの圧縮ファイルが作れないか・・・という話があったので zip コマンドについて調査。

zip -P パスワード 圧縮ファイル名(*.zip) 圧縮対象ファイル . . .

で、パスワードをかけて圧縮出来る。
解凍するときは、unzip コマンドでも同じように -P オプションをつけてやればOK。

具体的には、例えば hogehoge というパスワードをかけて圧縮する場合、

<圧縮>
zip -P hogehoge exsample_files.zip exsample_file1.txt exsample_file2.txt
<解凍>
unzip -P hogehoge -d . exsample_files.zip

という感じ。

まあ、あんまり P オプションは使うな・・・ということのようだが、他人がコマンドを見れない環境であれば全然問題ないと思うがね。(生理的に駄目だという人は、多分、ウィルスに感染したファイルの入った FD を差し込んだだけで青ざめるような人なんだろうな(笑))

※チェックしたのは、Red Hat Enterprise Linux ES release 4 (Nahant Update 4)
 上にて。

Adobe Flex Builder 3 Plug-in をインストールしたのだが、Eclipse 上で Flex スタートページを選択しても、

The Flex Start Page requires the Adobe Flash Player. Please use the installers in the Flex Builder 3/Player/ folder to install the Adobe Flash Player into your default browser.

というエラーメッセージが表示されてスタートページが表示されない。

WindowsXP Professional のノートでは問題ないのに、Windows Vista Business では何度インストールをしても駄目。

まあ、結局、エラーメッセージのとおり、Flex Builder 3\Player\win フォルダの下の Install Flash Player 9 ActiveX.exe を実行しインストールを行ったら、スタートページが正常に表示されるようになった。

う~む。

Adobe Flex Builder 3 Plug-in のインストール中に InternetExplorer 用の Flash Player をインストールすると表示され、事実、WindowsXP ノートでは正常にインストールされていたところを見ると、またも「Windows Vista の使えないセキュリティ機能」のせいでインストールがスキップされていたようである。多分。

・・・ああ・・・ほんとに、Vista って使えねえ・・・

作業メモ。

今回は 3.21-ja の環境は残しておき、4.23-ja の環境でテストをして問題なければ(テンプレート等の修正が必要であればそれを行った後)移行を行いたい・・・という要件だったので、以下のような手順を取った。

0.現行の環境<現行ブログ(3.21-ja)>
 ・管理画面
 /var/www/mt1(http://www.exsample.com/mt1/
 ・公開ディレクトリ
 /var/www/blog1(例:http://www.exsample.com/blog1/testblog
 ・DB名
 mt1db
1.現行のDBをバックアップ&リストアし、現行とは別名で DB 作成(例:mt2db)。
2.現行の環境(管理画面、公開コンテンツ等)を別名でコピー(3.21-ja)テスト用の環境作成<テストブログ(3.21-ja)>
 ・管理画面
 /var/www/mt2(http://www.exsample.com/mt2/
 ・公開ディレクトリ
 /var/www/blog2(例:http://www.exsample.com/blog2/testblog
 ・DB名
 mt2db
3.4.23-ja を新規インストール。DB は新規に作成したダミーのDB(例:mt3db)を使用。<新ブログ(4.23-ja)>
 ※インストール作業は、ユーザ登録、最初のブログ作成までちゃんと行うこと。後で消しちゃうけど。
 ・管理画面
 /var/www/mt3(http://www.exsample.com/mt3/
 ・公開ディレクトリ
 /var/www/blog3(例:http://www.exsample.com/blog3/testblog
 ・DB名
 mt3db
4.新ブログの mt-config.cgi を修正し、DBを mt2db に変更。
5.新ブログの管理画面にアクセスし、DB の更新処理を実行。(自動実行される)
6.新ブログの管理画面で、各ブログを再構築。
7.新ブログの公開ページ(例:http://www.exsample.com/blog3/testblog)にアクセスし内容を確認し、足りないものがあればコピー。
 (例えば、mt-static の下にタイトル画像などを置いている場合)
8.プラグインのインストール。(但し、4.23-ja 未対応のプラグインがある場合は、残念ながらアンインストール(手動でテンプレート等修正))

以上。
テストブログは作成しなくてもよかったのだが、今回はもしかしたら現行を触って確認するケースが出てくるかもと、念のため作成した。(結局、必要なかったけど(^^;)

これで、お客さんにてチェックがすんだ段階で、

0.ブログの更新中止。
1.現行のDBをバックアップ&リストアし、新DB(mt2db)を最新に。
2.ディレクトリ名を変更。(現行を *_old のようにして、新ブログを現行のディレクトリ名に変更)
3.crontab 等のパスも変更。
4.Apache の再起動。(必須)
5.新ブログの管理画面にアクセスし、DB の更新処理を実行。(自動実行される)
6.新ブログの管理画面で、各ブログを再構築。(公開パス変更)

という作業を行い、移行終了・・・のはず。

この後、

1.テストブログ(/var/www/mt2 や /var/www/blog2)を削除。
2.ダミーDB(mt3db)を drop する。

という作業を行い、全ての作業終了となる予定。現行DBは念のため、しばらく取っておく。
2,3ヶ月置いておいて、何も起きなければ現行ブログのディレクトリとともに、削除してかまわないだろう。

・・・て感じかな。

このアーカイブについて

このページには、2009年1月以降に書かれたブログ記事のうちお仕事カテゴリに属しているものが含まれています。

前のアーカイブはお仕事: 2008年12月です。

次のアーカイブはお仕事: 2009年2月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。


月別 アーカイブ

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら