2017-09-02 6 views
0

タブや改行などのテキスト形式に\n\tという単純な印刷アプリケーションを作成します。C#エスケープ文字がベース64からデコードされても機能しないのはなぜですか?

このようなハードコードを使用して入力すると完全に実行されます。

isi = "ARIEF - JL. ANGGA JAYA II\n\t\t\t\tSTRUK PEMBAYARAN NEXXT MEDIA\n\nIDPEL\t\t\t: 09343590348509435\nTGL. BAYAR\t\t: 2017-09-02 10:26:53 \t\t\tTAGIHAN\t: 1.000.000\nPRODUK\t\t:\t\t\t\t\tADMIN\t\t: 2.500\nNAMA\t\t\t: RYAN\t\t\t\t\tTOTAL\t\t: 1.500.000\nREF\t\t\t: ARIEF - JL. ANGGA JAYA II\n\n\t\t\tCATUR TUNGGAL KAB SLEMAN DAISTA YOGYAKARTA\n\n\t\t\tSTRUK INI MERUPAKAN BUKTI PEMBAYARAN YANG SAH\n\t\t\t  HUBUNGI CUSTOMER SUPPORT LOKET PPOB ANDA\n"; 

と、次のように実行します:

enter image description here

しかし、私はこのコードを使用してbase64でデコードから文字列を取得する場合:

public string base64ToString(string str) 
{ 
    byte[] data = Convert.FromBase64String(str); 
    return Encoding.UTF8.GetString(data).ToString(); 
} 

を、それはもうフォーマットを脱出し、取得していませんこのレイアウト:

enter image description here

私のコードに何か問題がありますか?または、基本的なC#の知識が不足していますか?

QVJJRUYgLSBKTC4gQU5HR0EgSkFZQSBJSVxuXHRcdFx0XHRTVFJVSyBQRU1CQVlBUkFOIE5FWFhUIE1FRElBXG5cbklEUEVMXHRcdFx0OiAwOTM0MzU5MDM0ODUwOTQzNVxuVEdMLiBCQVlBUlx0XHQ6IDIwMTctMDktMDIgMTA6MjY6NTMgXHRcdFx0VEFHSUhBTlx0OiAxLjAwMC4wMDBcblBST0RVS1x0XHQ6XHRcdFx0XHRcdEFETUlOXHRcdDogMi41MDBcbk5BTUFcdFx0XHQ6IFJZQU5cdFx0XHRcdFx0VE9UQUxcdFx0OiAxLjUwMC4wMDBcblJFRlx0XHRcdDogQVJJRUYgLSBKTC4gQU5HR0EgSkFZQSBJSVxuXG5cdFx0XHRDQVRVUiBUVU5HR0FMIEtBQiBTTEVNQU4gREFJU1RBIFlPR1lBS0FSVEFcblxuXHRcdFx0U1RSVUsgSU5JIE1FUlVQQUtBTiBCVUtUSSBQRU1CQVlBUkFOIFlBTkcgU0FIXG5cdFx0XHRIVUJVTkdJIENVU1RPTUVSIFNVUFBPUlQgTE9LRVQgUFBPQiBBTkRBXG4= 

が、私はこれを使って、その文字列を持って:あなたが使用

enter image description here

+0

あなたのbase64文字列に問題があると思われます。あなたはここに投稿できますか? – Nisarg

+0

あなたの返信ありがとう、私は自分の質問を編集しています。 –

+1

その文字列をどのようにエンコードしましたか?文字列に改行やタブではなく、文字列 '\ n'と' \ t'を追加したようです。 –

答えて

1

ツールは仕事のための適切なツールではありませんでした。ここ

はUTF-8 base64でエンコードされた文字列です。あなたがそこに貼り付けたリテラルテキスト(バックスラッシュとすべて)を取り、それをbase64文字列に変換しました。プログラマの観点からは、\n"\\n"に変更しました。このツールを使用するには、\nと入力することはできません。改行が必要になる場合は、実際に改行文字を入力する必要があります。 \tと同じですが、実際のタブ文字を入力する必要があります(ツールでデータに対する追加の処理は行われないものとします)。

コードでコード化する方が簡単です。

string EncodeString(string str, Encoding encoding = null) 
{ 
    encoding = encoding ?? Encoding.UTF8; 
    return Convert.ToBase64String(encoding.GetBytes(str)); 
} 
string DecodeString(string str, Encoding encoding = null) 
{ 
    encoding = encoding ?? Encoding.UTF8; 
    return encoding.GetString(Convert.FromBase64String(str)); 
} 
+0

ああ、あなたは正しいです,,,,, 文字列\ tはエンコーダツールで\\ tに変換されました... よかったです... 私には届きませんそこに... あなたのために親指アップ... –

関連する問題