2011-02-10

Ubuntu10.04上でJEF漢字コードをUTF-8に変換したメモ

ちょっとした事情で、Ubuntuサーバ上でJEF漢字コードをUTF-8に変換する必要があったのでメモ。

iconvやddコマンドなどを利用してもEBCDICやEBCIDKコードからSJISへの変換はできるけど、漢字が含まれていているJEF漢字コードをSJISやUTF-8に変換するのができなくて困った。

さてどうしたものか?JEF漢字コードのあるデータにはシフトコードというものが含まれていて、漢字が利用される前後に埋めこまれている。

こうなったらバイナリをガリガリと変換するか?とも思ったけど、とりあえずGoogleで検索してみる。

Windows用のフリーウェアではいくつか見つかった。WindowsならばということでVectorで検索。

JEFコードに対応しているものがいくつかあるが、今回はUbuntu Linuxで利用したいんだなぁ〜涙;

Linux用はないものかと検索を頑張ってみたものの、これといった情報に辿りつけない。
Linux用といってもコマンドラインからの実行がしたいので、GUIは不要。

Vectorで見つけた JHTc(jHTコマンドエディション)ってやつでやってみるか!?
コマンドプロンプト用なので、Ubuntuサーバ上の Wine でも問題なく動作するだろうという予想。

WineっていうのはLinux上でWindowsプログラムを動かすためのもの。aptでインストールできる。

Ubuntuサーバ + Wine + JHTc.exe で見事成功!\(^o^)/
無事、コマンドライン上で、JEFからSJISに変換できた!
SJISからの変換は色んな方法が利用できるので全く問題ない。

コマンドラインで実行できたということは、PHPからexec()とかでJHTc.exeを実行してもできるかな?と思いテスト。

PHPからの実行もうまく出来るよ〜♪
レスポンスも申し分なく、数メガのファイルをいくつか連続変換してみても十数秒。まぁサーバのスペックもそこそこ高いのだけど、Webページ上で利用者が限定されているなら使えそう。

それにしてもJEFコードって面倒だわ・・・

0 件のコメント:

コメントを投稿