• ベストアンサー

文字コード変換の場合わけ。

あるURLのソースの文字コードを判定してUnicodeに変換する メソッドや方法はありませんか? URLによってshiftJISでかかれていたり、EUC-JP で書かれているページがあるのでそれを 判定してUnicodeに変換して出力する方法が欲しいのです。 現在は InputStreamReader isr = new InputStreamReader(is,"EUC-JP"); コンストラクタを用いてコード変換を行っています。 お願いします。

  • Java
  • 回答数2
  • ありがとう数4

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

  • ベストアンサー
  • UKY
  • ベストアンサー率50% (604/1207)
回答No.2

iso-2022-jp、Shift_JIS、EUC-JP の三つだけ判定できればいいのなら、InputStreamReader のコンストラクタに渡すエンコーディングに "JISAutoDetect" を指定すれば大概うまく読み込んでくれますけど。

Judau_MSZ-010
質問者

お礼

ありがとうございます。

その他の回答 (1)

  • sha-girl
  • ベストアンサー率52% (430/816)
回答No.1

根本的にEUCかSJISかを判定することは難しいです。 とりあえず一旦すべての文字列をバイト配列 に読み込み、出現度からsjisかeucかを判定する 方法がありますが、確実ではありません。 もしソースの中にタグの<meta charset=があるなら それが指標になります。

Judau_MSZ-010
質問者

お礼

ありがとうございます。

関連するQ&A

  • Perlの文字コード変換について

    ActivePerl-5.14を使っているのですが、文字コードの変換はどのようにすればいいのでしょうか。 ローカル環境で動かしているのですが、Shift-JISのテキストを読み込んで、EUC-JPに変換したいと思っているのですが、 今まで5.8を使っていたので、Jcodeを使って、&Jcode::convert(\$txt,'euc'); としていたのですが、5.14ですと use Jcode;  の時点でエラーになってしまいます。 use Encode; を使って、 from_to($txt, 'shiftjis', 'euc'); としてみましたが、 from_to($txt, 'shiftjis', 'euc'); のところでエラーになってしまいます。 ActivePerl-5.14ですと、どのように文字コードの変換をすればいいのでしょうか。 どなたか教えてください。 よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • PHPでの開発時の文字コードについて

    「サーバー、データベースの文字コードがEUC-JP、最終的なブラウザへの出力はShiftJIS」 という要件の場合、プログラムとHTMLの文字コードはどのように決めるべきでしょうか。 個人的に、以下の3点のケースが考えつきました。 (1)プログラムもHTMLもEUC-JPで記載し、レスポンスの直前にShiftJISへ変換する。 (2)プログラムはEUC-JP、HTMLはShiftJISで記載。プログラムの変数や関数の結果をHTMLに埋め込むときは必ず事前にShiftJISへ変換する。 (3)プログラムもHTMLもShiftJISで記載し、データベースへ格納するときは事前にEUC-JPへ変換する。 個人的には、(3)は論外として、変換が1箇所で済む(1)が最も楽そうに感じます。 また、(1)であれば、ShiftJIS以外の文字コードへの対応が生じた場合も簡単に済みそうな気がします。 (そういった状況が生じるかどうかはわかりませんが……) 皆様であればどのような方法がオススメか、また、普段はどのような考えで文字コードを 決めているのか、理由も合わせて教えていただけると幸いです。 ※不勉強故、的はずれな点があれば、ご指摘いただけると幸いです。

    • ベストアンサー
    • PHP
  • UNICODEへの文字コード変換

    以下のようにして、 日本語で書かれたファイルを読み込んで、 UNICODEに変換したいのですが、 できません。。。 どこが間違っているのでしょうか?(;;) 元の日本語ファイル「こんにちは」 >>できたファイル「\u3053\u3093\u306b\u3061\u306f」 という風にしたいのですが。。 //FileIOSteramの作成 FileInputStream fis = new FileInputStream(iFile); FileOutputStream fos = new FileOutputStream(oFile); //Stream ラップ InputStreamReader in = new InputStreamReader(fis, "EUC-JP-LINUX"); OutputStreamWriter out = new OutputStreamWriter(fos, "UTF16"); System.out.println(System.getProperty("file.encoding")); //読み込みと書き込み int c; InputStreamReader in = new InputStreamReader(fis, "Unicode"); Writer out = new Writer(fos); while((c = in.read()) != -1){ out.write(c); }

  • 文字コードの変換

    今、C言語の勉強をしているのですが、 EUC-JPの文字コードのファイルを読み込んでUTF-8の文字コードのファイルに変換したい場合はどうすればいいのでしょうか? それか、ファイルに書き込む時に文字コードをEUCーJPからUTFー8に変換して出力する方法でもいいです。 調べ足りないのかもしれませんが色々調べてもよくわかりませんでした。 よろしくお願いします。

  • JAVAでのShift-JISとEUC-JP間の文字コード変換ができません

    Windows環境で作成した「Shift-JIS(CP932)」のファイルを、 JAVAを使用して「EUC-JP」のファイルに変換したいのですが、 NEC選定文字(13区)等の追加された機種依存文字の変換ができません。 いろいろ調べてみたのですが、 文字コードの呼び方がサイトによってあいまいで、 どのページが正しいのかがわかりません。 ・「Shift-JIS(CP932)」「EUC-JP」の正確な情報が記述されたサイト ・JAVAにおける文字コードの変換のノウハウ に関しての知識をお持ちの方がいましたら、教えてください。 以下は変換に使用したJAVAのソースコードです。 InputStreamReader ins = new InputStreamReader(new FileInputStream(iFile), "windows-31j"); OutputStreamWriter outs = new OutputStreamWriter(new FileOutputStream(oFile), "euc-jp"); int c; while ((c = in.read()) != -1) { out.write(c); } 以上です。 よろしくお願いします。

    • ベストアンサー
    • Java
  • 文字コードについて!

    文字コードについて! 文字コードのこれまでの歴史的経緯と 現状ではどのような場面で用いられているか が、調べても良く分からないので知ってらっしゃる方いませんか? ASCII、JIS、ShiftJIS、EUC,unicode どれか1つでも結構です(*Δ*) 様々な文字コードについての感想 インターネットにおける文字の扱いについても 個人的な意見でいいので、あれば聞かせてください^^

  • ある文字コードのHTMLを読み込むと文字バケが…

    例えばこのgooの文字コードはEUC-JPなのですが、これを以下のプログラム(抜粋)で読み込むと日本語がおかしくなります。 try {  URL url = new URL(tf.getText());  BufferedReader urlin = new BufferedReader(new InputStreamReader(url.openStream()));  String result = "";  while((result = urlin.readLine()) != null){   System.out.println(result); }  urlin.close(); } Shift-JISだと正常に表示できるのですが… どうかアドバイスをお願いします。

    • ベストアンサー
    • Java
  • 文字コード変換

    初心者で、どう質問をすれば理解してもらえるか分かりませんが、 文字コードを出力先に合わせて "EUC-JP"と変換していのですがうまい事いきません。 <?php $str = "あああ"; $str = mb_convert_encoding($str, "EUC-JP", "auto"); echo $str; ?> というふうに書いても Fatal error: Call to undefinde function mb_convert_encoding() と出てきて、エラーがおきてしまいます。 ちなみにMS-DOSを使用してます 答えれる事は何でも答えますので何か、ほかに方法があれば教えてください。 お願いします。

    • 締切済み
    • PHP
  • 文字コード

    少し、聞かせてください。 今、WEBアプリケーションを作っています。 HTMLからのリクエスト文字を受け取りServletで処理を考えています。 そこで、 String para = request.getParameter(para); String param = new String(para.getBytes("8859_1","JISAutoDetect"); で、8859_1,Shift_JIS,EUC-JP,ISO-2022-JP の Unicode 変換することが できるのは、分かりました。 では、この HTML からのリクエスト文字が、どのタイプの文字コード でかかれているかを検出できるのでしょうか? 自分では、バイト列をつかさどる方法が浮かぶのですが・・・。 HPでもかまいませんので、教えてください。

    • ベストアンサー
    • Java
  • 文字コードの変換について

    MSXMLを利用して、XML+XSLTをHTML出力しているのですが、 現在は、すべてシフトJISコードで行っているのですが、 これを、出力されるHTMLをEUC-JPにしたいと思っていますが、 どうすればよいでしょうか? XMLは、作業上、シフトJISが都合がよいので、変更したく ないので、パーサかプログラムで自動で変換するのが、 良いかなぁと思っていますが、パーサで自動変更は出来るのでしょか? やはりプログラムで、変換しなければいけないのでしょうか? よろしくお願いいたします。

    • ベストアンサー
    • XML

専門家に質問してみよう