文字コードチェック方法について

このQ&Aのポイント
  • 文字コードチェックについて教えていただきたいです。S-JISの範囲内の文字コードに該当しているかどうかをチェックしたいです。
  • 現在のコードではUnicodeでチェックしているため、S-JISでのチェック方法を知りたいです。
  • いただけると助かります。
回答を見る
  • ベストアンサー

文字コードチェックについて

題記の文字コードチェックについて教えていただきたいのですが、 入力情報に対して、S-JISのある範囲内の文字コードに該当していればエラーとするような文字コードチェックをしたいのですが、 どのようにすればよいでしょうか? 下記のコードも文字コードのチェックなのですが、これだとUnicodeでのチェックになってしまいます。 どうにかしてS-JISでチェックしたいのですがやり方がわかりません。。 よろしくお願い致します。 コード---------------------------------------- public class CodeCheck {  public static void main(String[] args) {   String str = "a";   char ch = str.charAt(0);   if(ch == 0x2460) {    // エラー処理   } else {    // 正常処理   }  } } ---------------------------------------------

  • Java
  • 回答数1
  • ありがとう数1

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

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

Unicodeの0x2460。まるの中に数値のある文字列を表現したいのだと思いますが これは機種依存文字です。(Windowsでのみ表示できる文字) Javaの場合 "MS932"でコードを変換します。 public class CodeCheck {  public static void main(String[] args) {   try{    String str = "a";    byte array[] = str.getBytes("MS932");    char ch;    if (array[0] >= 128){     ch = (char)array[0];    }else{     ch = (char)(array[0] * 0x100 + array[1]);    }    if(ch == 0x8740) {     // エラー処理    } else {     // 正常処理    }   }catch(Exception e){   }  } } "a"を(1)(まるの中に1)と置き換えれば エラー処理を通ります。

taka1112
質問者

お礼

ありがとうございました。 解決できました。

関連するQ&A

  • 型変換方法について

    困っています。。 下記コードは文字コードのチェックをしているのですが、チェックする文字コードを直接指定するのではなく、 String code = "0x2460" のように持たせておきたいのですが、この文字列を使ってチェックするにはどうしたらよいでしょうか? char型に変換しないといけないと思うのですが変換方法が分かりません。 API等いろいろ調べてみたのですが分かりませんでした。 どうか宜しくお願いします。 コード---------------------------------------- public class CodeCheck {  public static void main(String[] args) {   String str = "a"; // チェック対象文字   char ch = str.charAt(0);   if(ch == 0x2460) {    // エラー処理   } else {    // 正常処理   }  } } ---------------------------------------------

    • ベストアンサー
    • Java
  • 内部文字コードとは?

    javaは内部では文字をユニコードとして扱うとは、 どういう事でしょうか? 例えば、javaのブログラムをwindows上で作ったとして、 「こんにちわ」と出力させるプログラムを作ったとすると、 public class Hello{ public static void main(String[] args) { System.out.println("こんにちわ"); } } となりますよね、この時、このjavaのソースファイルを、 ユニコードとして保存して、コンパイル、実行しないと、 正常に動かないという事でしょうか? つまり、ソースをシフトJISで保存してJAVAでコンパイルをしようとすると、ソースコード中の文字をユニコードとして扱うため、 文字化けして、コンパイラは一体何の事か分からずエラーみたいな感じになるのでしょうか?(それとも自動で文字コードをユニコードに変換してくれるのかな?) 要するに、「内部文字コード」という言葉が何を指しているのかが分からないですが、よろしくお願いします。

  • String型とchar型の変換エラーです

    今晩は!またまたこの掲示板にきました。よろしくお願いします。 文字列かブランクを取り出すコードを書きましたが、 -------- char ch_check = str.charAt(i+1) ; if(ch_check ==" ") { --------- のところでString型とchar型の混合は受け入れられませんのようなエラーが出ました。 if(ch_check ==" "をboolean型でうけるのも拒否されました。 どこをどのようにしてやればよいでしょうか。 JAVA初心者です、特に文字列の取り扱いは評判通りわかり難くくないています。 よろしくお願いします。 ---------- public class Mojiretu_Blank { public static void main(String[] args) { String str = "This is a pen."; int i = 1 ; int blank_count = 0 ; while( i < (str.length()+1) ) { char ch_check = str.charAt(i+1) ; if(ch_check ==" ") { blank_count ++ ; System.out.println(ch_check); } else{} System.out.print("ブランクの数は" + blank_count + "個です。"); } } }

    • ベストアンサー
    • Java
  • 以下のコードのどこが問題なのでしょうか?

    java初心者です。よろしくお願いいたします。以下のコードはどこに問題があるのでしょうか?よろしくお願いいたします。 public class Sample2 { public static void main(String[] args1,String[] args2) { MyObject object = new MyObject(); object.setName("mikel" , "jun"); String s = object.getName(); System.out.println(s); } } class MyObject { String name; public void setName(String str1,String str2) { name = "str1"+"str2"; } public String getName() { return name; } }

    • ベストアンサー
    • Java
  • charAt(0)について

    import java.io.*; class Sample3 { public static void main(String[] args) throws IOException { System.out.println("文字列を入力してください。"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str1 = br.readLine(); System.out.println("検索文字を入力してください。"); String str2 = br.readLine(); char ch = str2.charAt(0); int num = str1.indexOf(ch); if(num != -1) System.out.println(str1 + "の" + (num+1) + "番目に「" + ch + "」が見つかりました。"); else System.out.println(str1 + "に「" + ch + "」はありません。"); } char ch = str2.charAt(0);の部分ですが、 charAt(0)というのは ( )に書かれている番号「のみ」を参照するんですよね? だからもし「こ」んちにはと入力しても0番目の「こ」しか出さないはずなのに、 「に」 を入れたらちゃんと「3番目に に が見つかりました」と出るのはなぜですか?

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

    VB2008で文字列を他の文字コードにする方法が知りたいです。 何かしての部分がわかりません。 VB2005でも使えるものだったらうれしいです。 Dim str_sjis as string Dim str_euc as string = "パソコン" '例えばEUC-JP '''何かして str_sjisにシフトJISで文字列が入っている。 .Netの文字コードの変換の仕方がごちゃごちゃして分かりづらいです。

  • 三つの文字を順に並べるプログラム

    三つの文字を入力して、順番に並べて表示させるプログラムが作りたいのですが、どうしたらいいのかわかりません。 二つまではできました。以下に記します import java.io.*; class Sample { public static void main(String args[]) throws IOException { System.out.println("文字列1を入力してください。"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str1=br.readLine(); System.out.println("文字列2を入力してください。"); String str2=br.readLine(); int s = 1,t = 0; if(str1.length()>str2.length()){ int len=str1.length(); StringBuffer sb=new StringBuffer(str1); while(s<len+1){ sb.insert(s,str2.charAt(t)); s=s+2; t++; } System.out.println("文字列は"+sb+"となる。"); }else{ int len=str2.length(); StringBuffer sb=new StringBuffer(str2); while(s<len+1){ sb.insert(s-1,str1.charAt(t)); s=s+2; t++; } System.out.println("文字列は"+sb+"となる。"); } } } str1に123 str2に45といった風に入力すると14253といった風になります。 これにstr3を加え、str3が6789ならば、146257389 となる風にしたいです。

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

    javaの文字コード変換についての質問ですが 1 shift_jis → jis83 → jis78 2 jis78 → jis83 → shift_jis と変換をかけたいと思っていますがどのようにすれ ばいいのでしょうか? String str = new String( "hogehoge", "XXX" ); でコンストラクタの2つめの引数に変換をかけたい 文字コードの指定をすればうまくいくのでしょうか? もしそうならなんと指定すればいいのでしょうか? 以上よろしくお願いします

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

    少し、聞かせてください。 今、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
  • JISコード変換について

    String str = "アイウエオ"; byte test[] = moji.getBytes("ISO2022JP"); String ret = new String(test); 上記のプログラムで半角カナをJISコードに変換すると 文字化けしているのですが、文字化けしないようにするにはどうしたらよいでしょうか。 なお、JISコードの String test = "アイウエオ"; ← "アイウエオ"はJISコード(文字化け無しの半角カナ文字) String ret = new String(test .getBytes("ISO2022JP"),"JISAutoDetect"); これで、文字化けせずUnicodeに変換できたのですが、単純に逆に変換しただけでは、半角カナの文字は、JISコードに変換すると文字化けしてしまうのでしょうか? どなたか教えて頂けないでしょうか?

    • ベストアンサー
    • Java