- ベストアンサー
ファイルの文字コード変換
一度Shift-JISコードで作成したファイルを、そのままの状態でEUCコードに変換することはできないのでしょうか? ◇試したこと 1)文字コード変換ツール(フリーソフトを2,3種類) 2)インターネットエクスプローラで開いて文字コード変換 ◇結果 1)いずれも変換されなかった 2)変換されたが元のファイルのテキストが崩れた かなりたくさんShift-JISファイルがあるので困っています。 いい方法を御存知の方がいらっしゃいましたら御教授いただければ幸いです。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
繰り返しますが。 ANo.1この回答へのお礼,で提示された 元ファイル(Shift-JIS) 15行は,ASCII文字しか含まれていませんので,Shift_JIS → EUC-JP変換しても改行コードが置換されるだけで,秀丸の表示は「日本語(Shift-JIS)」のままですよ。 入力ファイル:sjis.php 中に日本語文字を含めて試していないんじゃないですか。
その他の回答 (4)
- jjon-com
- ベストアンサー率61% (1599/2592)
私は,次のツールだけを試してみましたが,正常に変換できています。 http://www.unibirth.com/products/CharsetConverter/ 「4.操作方法――ダイアログからの変換」の画面どおりの方法で,入力ファイル名:sjis.php,出力ファイル名:euc.php として試しました。 ANo.1この回答へのお礼,で提示された 元ファイル(Shift-JIS) 15行は,ASCII文字しか含まれていませんので,Shift_JIS → EUC-JP変換しても改行コードが置換されるだけです。 念のため,入力ファイル:sjis.php 中に日本語を含めてみましたけれど,やはり正常に変換できています。
お礼
御回答ありがとうございます。 私の環境ではやはりできていないようです。 ツールの処理後のメッセージは「正常に終了しました」 となり、euc.phpも生成されているのですが、 秀丸で開いて確認するとShift-JISのままでした。
- jjon-com
- ベストアンサー率61% (1599/2592)
ANo.1この回答へのお礼,の後半で述べられている次の事項は質問者の思い違いです。 >IEで開いたのちShift-JIS → EUC へ変換 IEは 元ファイルの変換などしません。IEは「元ファイルはそのままで」,ただその文字コードの自動判別を間違うようなら人間がその解釈方法を指定してやることができるというだけです。それがIEの 表示→エンコード です。 (もしも元ファイルの文字コード変換ができるなら,IEの 表示→エンコード→その他 を使えば,日本語から外国語への自動翻訳ができるというスゴイことになりますよね?) ということで,正しくShift-JISとして自動判別できていた元ファイルを,無理やりEUC-JPとして解釈させたら, get_log_all(); $smarty = MySmarty::getInstance(); $smarty->assign('list', $out_list); $smarty->display('admin_sale.html'); ?> という結果になった,というのが後半の記述です。
お礼
御回答ありがとうございます。 なるほど、IEは文字コードを変換するわけではないのですね。 大変参考になりました。
- Nazogramer
- ベストアンサー率51% (92/177)
インターネットエクスプローラの保存でEUC指定しても表示の時の文字コードをEUC指定しないとShift-JISコードで表示しようとするだけだと思います。 今は、インターネットエクスプローラを使っていない(SeaMonkeyを使ってここも見ています。)のでやってみてはいないのですが、ページのソースに「charset=EUC-JP」の指定がないとShift-JISと解釈して表示されていませんか? インターネットエクスプローラのソースの表示でメモ帳を使って表示し、保存すれば。Shift-JISコードになると思います。 ただし、メモ帳は一定サイズのサイズまでしか処理できないので、これを超えるとワードパッドに切り替わると思います。
お礼
御回答ありがとうございます。 なかなか上手くいきません。 なんとか頑張ってみます。
- jjon-com
- ベストアンサー率61% (1599/2592)
本当に解決したいのなら説明をサボらないで, ・具体的にどのOSで ・具体的にどういうツールを使って ・具体的にどういう使い方をして みたけれど望む結果が得られなかったのか,きちんと提示するものだと思いますけれど。 あと,異常が再現できる最小限のデータを提示してくれませんか。いずれも変換できない/崩れたというのなら,サイズの小さいファイルでも同様の結果になる可能性が高いですから。 (Shift-JISだと思っているけれど実はそうじゃない,とか,文字コード指定とファイル中身が食い違っている,とか,その辺りの間違いかもしれません)
お礼
御回答ありがとうございます。 失礼しました。 追記させていただきます。 ・具体的にどのOSで WindowsXP SP2です ・具体的にどういうツールを使って 以下のツールです。 1)CharsetConverter 2)文字コード変換ツール fot .NET (version 2.0) ・具体的にどういう使い方をして 以下に従って行いました。 1)http://www.unibirth.com/products/CharsetConverter/ 2)こちらはURLを見つけることができなかったので (1)exeファイルを解凍 (2)「EncodingConveter.exe」を実行し、変換元ファイルを指定 し、変換元コードを「Shift-JIS」と指定 (3)変換先フォルダを指定し、変換先コードを「EUC-JP」に指定 と操作しました。 ◇確認作業 秀丸でファイルを開き、右下部の文字コードを確認しました。 また、IEでの確認ですが、 下記のソースで試してみました。 -------- 元ファイル(Shift-JIS) ------------- <?php require_once '../include/func.php'; require_once '../class/mysmarty.class.php'; require_once '../class/sale.class.php'; $sale = new Sale(); $out_list = $sale->get_log_all(); $smarty = MySmarty::getInstance(); $smarty->assign('list', $out_list); $smarty->display('admin_sale.html'); ?> -------- 元ファイル(Shift-JIS) ------------- IEで開いたのちShift-JIS → EUC へ変換 -------- 変換後のファイル(EUC-JP) ------------- get_log_all(); $smarty = MySmarty::getInstance(); $smarty->assign('list', $out_list); $smarty->display('admin_sale.html'); ?> ----------------------------------------------- これも秀丸で開いて文字コードを確認しました。 以上のような感じです。 何卒よろしくお願いいたします。
お礼
何度もお手数をおかけします。 なんだか頭の中がこんがらがっていました。 確かに、日本語を入れると変換できました! と、いうことはつまり、ファイル内のテキストが全てアルファベットで記述されていれば、改行コードなどを除外して考えると、文字コードはShift-JISでもEUCでも同じ、ということなのでしょうね、きっと。 文字コードは奥が深いですね。 ありがとうございました!