こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

文字コードが混在するテキストファイルを大量一括に統一変換する方法

過去ログは一応アレコレ漁ってみましたが、いまいちピンとこなかったので、新規に質問を立てさせていただきました。

タイトルにもありますが、文字コードの混在を解消する手段を探しています。
環境はWindowsのVistaとXP/SP2です。
主に使用しているソフトはMK-Editorというテキストエディタです。

それでは、困っていることについてお伝えしようと思いますが、どこに問題の核心があるのかがハッキリわかっていないレベルで暗中模索しておりますので、有識者の方からすれば無意味な情報があったり、欠落している情報があったりすると思います。上手にお伝えできないかもしれません。どうぞご容赦ください。

phpファイルをUTF-8で作成していたのですが、他に別のエディタで整形した行を何度かコピペで挿入してしまいました。別のエディタはS-JISで動作していました。
そのときすぐに気づけば手を打つのも早かったと思うのですが、気づかずにあちこちに同様の挿入をしたほか、そのphpファイルを雛形的に取り扱ってコピーペーストして生み出してしまったファイルがたくさんあります。

そこで、手探りしながらこのような手段を試してみました。
 ・KanjiTranslatorを使い、一括変換させてみた。
  http://www.kashim.com/kanjitranslator/index.html
 ・WHiNNYを使い、一つ一つ文字コードの変換をさせてみた。
  http://www.forest.impress.co.jp/article/2005/08/31/whinny.html

処理後、「あるファイルでは文頭文末に余計な?や空白が挿入される」「あるファイルはエディタで開いてみると全体がS-JISで認識され、あるファイルは全体がUTF-8やUTF-8Nで認識される」などといった、私には理解の及ばない不具合・症状が出てしまいます。

そこで、推測として「文字コードが混在したphpファイルになっているのがいけないのではないか」と思い至りました。
この推測自体が間違っているのかどうかも含めて、わかっておりませんが、お知恵を貸してください。

今更0から真っ白のファイルに打ち込みなおして作るのは非現実的過ぎます。
もし、このような状況(example.phpという一つのファイルの中にUTF-8で作られた行とS-JISで作られた行が混在してしまっている状態)をスッキリなんらかの文字コードのみに統一させるソフトがあれば…。
統一してくれるのであれば、一旦EUCやISOになっても構いません。
中身が全部揃ってくれれば、その後改めてKanjiTranslatorにかければいいのだろう、と想像しています。

上手にお伝えできたかどうか自信がありませんが、どうかよろしくお願いいたします。

投稿日時 - 2007-11-05 14:31:28

QNo.3491124

困ってます

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

MKEditorは使ったことはありませんが、調べてみました。

http://www.mk-square.com/home/software/mkeditor/

こちらの情報によると、内部的には全てS-JISで処理しているようです。

また、通常は1つのテキストファイル内に複数の文字コードは混在させないです。

上記のサイトの内容から推測しても、MKEditorがその様な
文字コードが混在したファイルを出力するとは思えませんよ。

>example.phpという一つのファイルの中にUTF-8で作られた行とS-JISで作られた行が混在してしまっている状態

例えば、このexample.phpをMKEditorで開いた場合、
問題の部分はどのように表示されていますか?

文字化けせずに、正常に表示されていませんか?

文字コードが混在していると思われる根拠は何でしょうか?
その原因は別の所にあるのではないでしょうか?

なにかプログラムに不具合が出ているのなら、その不具合の内容や、
プログラムの内容を補足して頂いた方が良いと思いますよ。

カテゴリが違うので、補足では無くて、PHPのカテゴリに、
別の質問として質問された方が良いかな。

投稿日時 - 2007-11-05 16:03:27

お礼

わざわざ調べてまでご回答くださいまして、ありがとうございます。

文字コードが混在している、と考えた根拠は、
・その部分だけがブラウザから確認したときに文字が化ける
・その症状が出たphpファイルはファイルの先頭に?が勝手に増えている
といったところからです。
「混在している」という結論めいたものを自分で思い込んだのは、わかってもいないくせによくないことでした。

おっしゃってくださった通り、MKEditorは基本S-JISで処理するようではありますが、UTF-8やEUCで作成されたテキストファイルはその文字コードを保って編集できます。
そして、開いたテキストファイルの文字コードと異なる文字コードの行をコピーして持ってきた場合、コピー元の文字コードが混じりこんでしまっているのじゃないか、と感じたのです。

エディタ側の責任ではなく、一括変換ソフト側の責任かもしれません。
質問は一旦締め切りにして、もっと確実に再現される状況を絞り込んで再度適切なカテゴリへ質問しようと思います。

こんな不勉強で軽率な質問を、調査しながらお答えくださったことに深く感謝します。

ありがとうございました。

投稿日時 - 2008-03-24 16:41:55

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問