• ベストアンサー

Linux・Windows間の文字コード変換方法を教えて下さい

Linuxの携帯電話(i-mode)向けのWebサーバを立上げ、WindowsのPCからHTMLファイル等を更新することを考えていますが、文字コードの変換方法がよく判りません。変換方法、ツール等を教えて頂けないでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.5

#2です。 うう、このままではトンヅラこいたと思われてしまいますので、再度書かせてもらいます。 i-mode用のサイトは作ったことがなかったので、コードがSJIS限定とは知りませんでした。 あと、私はPHPは使ったことがないのです。Perl一辺倒です。 ということでPerlを使う場合のことを書きますが、サーバーがWindowsか、もしくはjperlならばSJISで書くのですが、Linuxの場合、PerlのソースはEUCコードで書かないと正しく動作しません(SJISでも「動く場合もある」のですけど)。 従いまして、同じようなケースなら私は出力時に有名なライブラリ「jcode.pl」を使ってEUC→SJISに変換するでしょう。ソースコード内のリテラルはEUCで書かれているからです。 メッセージは別にデータベース(MySQLとか、DBMなど)に持っておいて、ソースはそれを呼び出すだけと言うような話であれば、データはSJISにしておくでしょう。この場合、ソースにはASCII文字以外は使用されないことになります。 PHPはSJISに対応しているのかもしれませんので、普通にSJISで書けば問題ないかもしれません。Perlでは上記のような対応が必要になります。

その他の回答 (4)

回答No.4

(#2の方が回答しないようなので・・・) 自分はPHPを使ったことはないですが、処理はCGIと同じサーバ上で行なわれるので、文字コードはともかく、改行だけはLFに変換した方が無難かと思います。 コマンドの類は皆英数字なので、シフトJIS+LFでも動作には問題ないかと思います。

回答No.3

i-modeはシフトJISしか使用できません。  ※参考URLをご覧ください。 端末側で対応している(今後する)可能性もあり ますが、ドコモの仕様(ルール)を守られた方が 良いでしょう。 すでに書き込まれた方もおっしゃっている通り、 WindowsやMacintoshでは通常、何もしなくても シフトJISが使用されます。 そのため、普通にFTPなどでアップすれば 問題ありません。

参考URL:
http://www.nttdocomo.co.jp/p_s/imode/tag/s3.html#3_1
回答No.2

普通のhtmlを載せるだけであれば、#1の方もおっしゃっているようにわざわざコード変換する必要はないですね。 SJIS+CRLF改行のファイル(Windowsのテキストエディタで生成されるファイル)をそのまま載せておけば問題ないでしょう。 問題になるのはPerlなどでCGIを立ち上げる場合です。Linux上で動作しているPerlはたいていの場合英語版ですから、EUCコード+CR改行でないとちゃんと動きません。 で、コード変換の方法ですが、一番簡単なのは秀丸エディタやViViといったコード変換機能を持ったエディタを使用することです。これらのエディタではセーブする時にコードと改行を選ぶことができます。Linuxで動作するCGIを書きたいのであれば、EUC+CR改行としておくと良いでしょう。NotepadではSJIS+CRLF改行のファイルしか作成できません(Windows2000/XPのものはUnicodeも使えますが)。 ちなみに、秀丸エディタもViViもシェアウェア(有償)です。私はViViを使っています。 nkfというコード変換コマンドや、ほかにもWindows用のコード変換プログラムはあります。また、FTPソフトによってはアップロード時にコードを変換する機能があるものもあります。この辺は、ソフトのマニュアルを読めばわかると思います。 あと、FrontPageなどのhtmlエディタではファイルのプロパティでコードを変更することが可能です。

shinmachi_taro
質問者

補足

PHPの場合もCGIと同様に変換する必要があるのでしょうか。

回答No.1

 質問の意味がよくつかめませんが、LinuxはUNIXの互換OSなので、当然、漢字コード=EUC、改行=LFですよね。iswebなんかの一般のホームページスペースと同じような環境と考えておけば良いのではないでしょうか。  というわけで、わざわざ変換する必要がありますか? HTMLファイルをシフトJISのままサーバに載せても、問題ないかと思いますが、どうでしょう?  それでも、ファイルを変換する場合は、  Windows <-> Linux ・Shift-JIS <-> EUC ・CR+LF <-> LF としておけばいいと思います。

参考URL:
http://www.vector.co.jp/soft/dl/win95/util/se065175.html

関連するQ&A

専門家に質問してみよう