/** * 文字コード調査ユーティリティ * Copyright (C) 2000 Midori IGA * (http://www01.u-page.so-net.ne.jp/db3/midori/midosoft.html) * * JDK1.1.6では MS932が非サポートエンコーディングなので * 該当個所は例外が発生します。 */ import java.io.*; /** * 文字コード ダンプユーティリティ * あくまでも Unicodeは2バイトであるとの仮定付きのコードです。 */ public class MdDump { /** * ちょっと動かすためだけのエントリポイント */ public static void main(String[] args) { System.out.println("Unicodeの文字コードダンプ"); String strTest="ABCDExyzあいうえお柿区 本日は晴天なり"; System.out.println("MdDump.dumpString(\""+strTest+"\")"); dumpString(System.out,strTest); System.out.println(); System.out.println("MS932コードページでバイト化後、文字コードダンプ"); System.out.println("MdDump.dumpBytes(\""+strTest+"\".getBytes(\"MS932\"))"); try{ dumpBytes(System.out,strTest.getBytes("MS932")); }catch(UnsupportedEncodingException ex){ System.out.println(ex.toString()); ex.printStackTrace(); } System.out.println(); System.out.println("古典的ダンプ表示手法による Unicodeの文字コードダンプ"); dumpString2(System.out,strTest); } /** * 与えられた文字列を指定ライターにダンプします。 * @param PrintStream out 出力先 * @param String strArg 入力文字列 */ public static void dumpString(PrintStream out,String strArg) { dumpBytes(out,string2bytes(strArg)); } /** * 与えられた文字列を指定ライターにダンプします。 * @param PrintStream out 出力先 * @param String strArg 入力文字列 */ public static void dumpString2(PrintStream out,String strArg) { StringBuffer strbufWrk=new StringBuffer(); for(int index=0;index>8)); outStream.write((byte)(cChar&0x00ff)); } outStream.flush(); outStream.close(); return outStream.toByteArray(); }catch(IOException ex){ System.out.println(ex.toString()); ex.printStackTrace(); } return null; } /** * 与えられた文字列を 指定文字を使って長さを補完します。 * なお 長さの換算方法としてはバイト換算です。 * @param String 入力文字列 * @param char 補完の際に利用する文字 * @param int 埋めたい長さ */ public static String getFilledString( String strSrc,char cFillChar,int iLength) { for(;strSrc.getBytes().length * 正の値に変換後 16進表示化します。 * @param byte bArg 入力バイト * @return String 文字列表現 */ public static String getHex(byte bArg) { int iArg=bArg; if(iArg<0) { iArg+=256; } return Integer.toHexString(iArg); } }