ちょっとした事情で、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 件のコメント:
コメントを投稿