2012-01-02 6 views
-1

これは私のC#プログラムです:16進データを通常のテキスト形式で解読しなければなりません。私はhttp://commons.apache.org/codec/download_codec.cgiからダウンロードしたapacheライブラリのHexクラスを使用することを好みます。これはjarファイルです。C#プログラム:通常のテキストに16進データを変換する:ライブラリのインポートエラー

JarファイルはC#コンパイラでは受け入れられません。グーグルではじめて、コモンズコーデックjarファイルをVisual Studioのjbimp.exeを使ってMSILに変換してからインポートする必要があることを知りました。私はVisual Studio 2010を使用しています。しかし、このjarをMSILに変換するためのjbimp.exeユーティリティは見つかりませんでした。私は自分のシステムでJBimpユーティリティを見つけることができません。

どうすればjbimpユーティリティを入手できますか? C#ファイルのパッケージ/ネームスペースとしてMSILコードをどのように指定する必要がありますか?

私のC#コード:

using org.apache.commons.codec.binary.Hex; 

class mainw 
{ 
    private static byte[] secret = new byte[] 
     {0x33, 0x34, 0x36, 0x32, 0x33, 0x36, 0x36, 0x36, 0x33, 0x36, 
     0x36, 0x32, 0x33, 0x36, 0x36, 0x36, 0x33, 0x37, 0x33, 0x33, 
     0x33, 0x36, 0x33, 0x32, 0x33, 0x37, 0x33, 0x35, 0x33, 0x36, 
     0x36, 0x33, 0x33, 0x36, 0x36, 0x33, 0x33, 0x36, 0x33, 0x35}; 

    public static void main(string[] args) 
    { 
     Hex hex = new Hex(); 
     byte[] secretDecoded1 = hex.decode(secret); 
     byte[] secretDecoded2 = hex.decode(secretDecoded1); 
     System.out.println("The secret is: "+new String(secretDecoded2)); 
    } 

} 
+0

正確にお手伝いしますか?あなたは質問しなかった。 – Oded

+0

Thanq、私は私の質問を更新しました。 –

+0

を確認してくださいこれはhttp://stackoverflow.com/questions/724862/hex-to-string-c-sharp – Joe

答えて

3

それはちょうど、六角操作のためILにJavaライブラリを変換するために、完全なやり過ぎだ。 JavaのライブラリをILに変換することはまれですが、正直言って、.NETのイディオムなど、ほとんどの場合、「ネイティブ」.NET同等のライブラリが利用できます。

あなたは正直に言うと、で開始することを意味する - あなたはバイト配列から始まり、テキストにそれを変換したいしている場合、あなたは通常、適切な方エンコーディング使用して...何か

String text = Encoding.UTF8.GetString(bytes); 

などを使用すると思います。

あなたは私がthis Stack Overflow answerに投稿されたコードのようなものを使用することができます(バイト配列である)そのバイナリ同等に(自然にテキスト、バイトではなくなる)HEXデータを解析するには。

0

私は私が正しく質問を理解し、しかし、ここで私は、Microsoft CRMの添付ファイルのためのC#で読み取り可能なテキストにHEXデータを変換するために使用するコードは100%を確認していない:

using (FileStream fileStream = new FileStream("c:\path\to\file\filename.ext", 
FileMode.OpenOrCreate)) 
{ 
    byte[] fileContent = Convert.FromBase64String("Your HEX String HERE"); 
    fileStream.Write(fileContent, 0, fileContent.Length); 
} 

これは、標準のC#コードであるので、あなたがしようとしているのであれば、ファイルの代わりに文字列変数に書き込むことができます。

ピート

関連する問題