半角カタカナと文字化け

 掲示板などに書き込む際、半角カタカナを入力したら化けてしまった、ということは良く聞く話。なんでこうなるのか、という原因を説明しているサイトもたくさんあるので、今回はそこもはしょって、実際にどうすればよいのかという話をちょこっとだけ説明します。
 Internet上で配布されているBBSスクリプトなどは、汎用性を持たせるためにどんな文字コードでも動作するようになっています。そして内部のデータ形式だけ文字コードを固定すれば、スクリプト自体の文字コードを変換(スクリプトによっては、出力に使用する文字コードを指定できるものもあります)してやるだけで、あとはShift_JISだろうとEUC-JPだろうと動作するためです。もちろんデータファイルの文字コードは固定されていますので、別の文字コードで出力するスクリプトにもそのまま流用できます。
 ほとんどのスクリプトにおいて、これを実現するためにjcodeという日本語コード変換ライブラリを利用していますが、このjcodeのconvert関数に渡すとき、入力された文字コードがどれなのかが分からないため、自動判定で渡します。
 このとき、入力された文字が半角カタカナのみの文章(あるいは半角・全角が混ざった短い文章)の場合、jcodeは文字コードを正常に識別できなくなり、結果文字化けが発生する、ということです。 これはjcodeの問題ではなく、半角カタカナの文字コードが原因で発生します。
 これを回避するには、jcodeに自動判別で渡さなければよい、つまり入力される文字コードも、出力される文字コードも固定すれば良いわけです。(スクリプトによっては出力に使用する文字コードを指定しているのにもかかわらず、jcodeに渡すときに自動判定にしているものもあります)
 具体的には、

&jcode’convert(文字列へのポインタ, ‘sjis’);

と、出力文字コードは指定しているのに入力文字コードを指定していない場合、以下のように入力文字コードも固定してしまいます。

&jcode’convert(文字列へのポインタ, ‘sjis’, ‘sjis’);

こうすることで、半角カタカナの文字化けを回避することができるようになります。
 ちなみにtackynoteの場合は322行目を(メール送信機能を使用する場合は1307行目、1310行目、1339行目も)、tackynotespの場合は496行目、519行目を(同じくメール送信機能を使用する場合は1953行目、1956行目、1985行目も)、それぞれ変更してあげてください。

きみのためなら死ねる Live It!

20041202-kimishine_liveit.jpg

 というわけで初回で見てきました。
 15分しかないのでどうなることやら…と思っていましたが、最初5分はムービー、その後10分ほど歌詞付きの「きみのためなら死ねる メインテーマ」を歌って終了という、かなりコンパクトな流れ。コンパクトといっても、もともとのコンセプトがミニミニライブなのでこんなもんじゃないでしょうか。
 初回は100人弱が集まっていましたが、微妙な盛り上がり加減でした(笑) (それでも最後のほうではちゃんと Rub It! と掛け声がかかっていましたが)
 ところでスーパーラバーズの中に社長が居た説があるんですが、これ本当ですかね?(→本当でした。おまけにITmediaにもリンク。)

とりあえず

 報告ということで。
20041202-nds_all.jpg 20041202-nds_cartridge.jpg
 ヨドバシで予約したので、せっかくのお祭りだし…ってことで朝6時50分に攻めようと思ったものの、気合が足らず新宿駅に7時過ぎ到着。(※ビックは当初6時55分ってTVCFで告知がありましたが、当日は50分になってました)
 着いたのは7時半ごろだったと思いますが、本当にガラガラでした(笑) (→各種ニュースを見る限り、発売直前はそれなりの人数が行列作っていたようですね。ある意味遅れて正解だったのかも^^;)
 当日購入も受け付けていたくらいなので、在庫は多くはなくてもそれなりにあるのかもしれません。(週末まではちょっと厳しいと思いますけれども…)
 とりあえずNDSにまわるメイドインワリオを突っ込んでみましたが、ちゃんと動きました(笑)

運送屋に憤怒する

 少し前に引越ししたというエントリを書きましたが、今回業者さんに頼んで引越しをしたんですね。2年前に羽村から杉並に越したときは○リさん○ークの○越社だったんですが、今回は○カイ○越○ンターを選択、引越しをお願いしたのですが…
 これがまた手際が悪いわ、ちゃんと梱包しないわで最悪でした。配送物品にコンピュータがあるのにエアキャップも無いってのはどういうことでしょうか。ホームページには、「電化製品は毛布などでくるみます」みたいなことが書いてありますが、ほとんどはダンボールに入れられただけでした。
 しかもそれで57,750円取られ、散々でした。(ちなみに前回は1月の引越しで31,500円) あれですね。TVCFにだまされてはいけないという典型的な例ですね。
 とまあ引越し業者に憤怒したのもつかの間、今度は家具を購入するため○印○品に注文。ここから配送を行う業者は○ovingというところらしいのですが、ここがまた「一番遅い便で午後2時~午後4時、一番早い便で午前9時半~午後1時半です」とかサービス精神のカケラもないことを言うわけですよ。当然仕事してるわけで、結局休みの日に持ってきてもらうことにしました…
 後者はどうにも出来ないので、さっさと(検閲削除^^;)って感じなんですが、前者についてはネットなどで調べれば分かると思いますので、皆様はこういった目に遭われませんようにご注意を…

12月

 今年ももう最後の月ですね。なんとなく、ではありますが、年間を通じて大きめの地震が多かったような気がします。(特に後半戦に集中していますが…)
 さて、年末といえば年末商戦ですが、今年はNDS対PSPという構図が既に出来上がってますね。PSPは先日の楽天スーパーオークションで、30,000円という非常にやる気の無い価格で入札してみました。結果はかなり酷いことになってましたが、まあ入手できなくても別にどうでも、という感じだったりします。^^; (というか30数万も出して欲しいものかどうか、と思うのですが)
 個人的には、”おもちゃ”であることを貫いたNDSを推したいのですが、兎にも角にも今後のソフト次第ということで。
 ”ポータブルプレーヤー”のPSPと”おもちゃ”のNDS、どちらも面白いことになりそうです。

一週間ぶり

 タイトルどおり、一週間ぶりの更新となってしまい申し訳ありません。この一週間何をしていたかというと、引越しに明け暮れておりました。
 本来引越しは休みの日にドンとやってしまうのが一番楽だしスッキリするんですが、休日は引越し代金も高くなってしまうので意地でも平日に、ということを考えていたら、今週は午後出社(夜22時まで)という勤務だったため、午前中に引越し→午後会社というのを毎日繰り返していました。(おかげで毎日リポD投入^^;)
 で、土曜日は休みだったのでようやく片づけが終わり、こうやって更新も出来るようになったというワケです。(メインマシンは一番最後に完了したのでなおさらだった、という)
 あと免許の書き換えとか細かい処理が残っているので、しばらくは落ちつかなそうですが、またちょくちょく更新していきますのでよろしくお願いいたします。

驚愕

 松平健が「キボンヌ」って…

続々:エントリ投稿時にSleipnirが落ちる

 Nucleusプラグイン作者でおなじみのyu氏が、Simple Toolbar及びFull Toolbarを表示している場合で、投稿時にブラウザが落ちる問題を修正されていました。
 「投稿時のIE強制終了を回避」のエントリにあるedit.jsファイルを、ダウンロード&解凍して nucleus/javascript/ 配下にある同名のファイルに上書きするだけで対応出来るようです。
 こんな便利なものを反映させない手は無い、ということで、早速ARGAS.NETサーバに導入されているNucleus(ここと中野。さんのところ)に反映してみました。
 しかしうちではたまに落ちるという感じだったので、すぐに判定は出来ないのがちょっと残念ではあります^^;

週末

 渋谷とか高尾山とかには行かず、秋葉原でサブマシン用HDD買って、新宿でうろうろして帰宅という週末でした。なんでかというと、喉が痛かったので下手すると風邪菌をばらまいちゃうかなー、という理由。
 どっちも行きたかったんだけどなあ…
 あとは家でごそごそと細かいことをやってました。

nx9030のHDDを換装する

 HP DirectPlusnx9030がトリプルアップグレードキャンペーン(ちょっと前のキャンペーンで現在は終了。メモリ512MB、ディスプレイパネル15インチ、DVD-ROM+CD-R/RW コンボドライブ搭載)なるものをやっていたのでさっくり購入、先日ようやく届いたので使用レポートを含めてお送りします。
 ちなみに現在nx9010を使用していますが、コレはDesktop版Celeronが載っていることもあり、ファンが非常にうるさいのが難点でした。(BIOSをアップグレードすると大分マシになるのですが…)
 早速nx9030を起動してみると、何の音もしないことに驚かされます。nx9010も最初からこうだったらなあ、と思うことしきり。Celeron Mの効果は予想以上に大きいようです。
 しかし残念なことにHDDがうるさいです。SeagateのST94019Aが載っていたのですが、シーク音が耳障りですので、別のHDDにさっくりと交換してしまうのが良いかと思います。
 …本当はこれ以外にも、たとえばWindows上での使用感とかなんか色々書くべきなんでしょうけど、さっくりフォーマットしてさっくりVineLinux 3.0をインストールしたので分かりません(汗)
【注意事項】換装の実施にあたっては、各自の責任においてお願いいたします。ハードウェアの故障に直結するものですので、自信のない方は換装しないほうが良いかと思います。
 今回は富士通のMHT2040ATを購入(クレバリーで8,788円)、換装してみることにしました。(マニュアルは付属のCD-ROMにPDF形式に入っていますし、マニュアルライブラリにもあります。nx9030はnx9000、nx9005、nx9010とほぼ同じ筐体を使用していますので、マニュアルも同じもので構いません)
※ちなみにこの機種に限らず、昔からhp(というかCOMPAQ)はPDFでマニュアルを配布しています。
 まずはバッテリパックと電源ケーブル、それにPCMCIAカードやUSBなどの周辺機器を取り外して裏返します。

20041109-nx9030_hdd_1.jpg

 次にHDDのマークが書かれているところの手前側にあるゴム蓋(赤丸部分)をはずします。爪で角を引っ掛けて簡単にはずすことができました。(アップはこちら
 蓋をはずすとネジが見えますので、ドライバーで2箇所ともはずします。
そしてHDDのカバー部分を引っ張り、HDDを取り出します。

20041109-nx9030_hdd_4.jpg

 カバーごと本体から引き抜いたら、カバー+フレームからHDD本体を取り外します。写真で見えているHDD本体のネジではなく、フレームについている4箇所のネジをはずします。
 カバー+フレームとHDD本体が分離できたら、HDD本体のコネクタ側についているアダプタを、ピンを曲げないように外します。
 Seagate ST94019Aと富士通 MHT2040ATを並べてみました。(どうでもいいところまでモザイクはいってますけど(汗))

20041109-nx9030_hdd_5.jpg

 MHT2040ATのジャンパピンをCS(Cable Select)に設定したら、あとは元に戻すだけです。アダプタを差し込み、フレームを取り付け、本体へ差し込みます。バッテリパックと電源ケーブルを繋いで、念のためBIOSメニューからHDDのテストを実施したほうが良いかと思います。(40分ほどかかります)
 で、早速VineLinux 3.0をインストール。

20041109-nx9030_hdd_6.jpg

 HDDを換装したことで、シーク音やアクセス音はほぼ皆無の状態となりました。nx9030本体は静かなマシンですので、技術的に問題がないようであれば個人的には換装することをオススメします。