2011-09-08 123 views
1

請幫忙 我有正確的編碼臨牀文件到基地64並將其發送到文檔對象的問題。 這是我正在使用的代碼。編碼base64在C#解碼在Java

1.step我編碼的PDF文件爲Base64

byte[] bytes = System.IO.File.ReadAllBytes(pdffile); 
return Convert.ToBase64String(bytes); 

此字符串連接到臨牀documet

2.Attaching CDA文檔元數據提交的要求

byte[] bytes = System.IO.File.ReadAllBytes(CDADocument.xml); 
string ReturnValue = Convert.ToBase64String(bytes); 
byte[] newbyte = System.Text.Encoding.UTF8.GetBytes(ReturnValue); 

doc[0].Value = newbyte; 

提交請求傳遞所有的步驟,但解碼不起​​作用。 他們使用Java API來解碼提交請求。 感謝您的幫助

+0

什麼是*臨牀文件*? –

+1

明顯的問題......如果'.Value'是'byte []',爲什麼不直接給它'bytes'而不是base-64和utf-8呢? –

+0

我不能使用字節,因爲我必須先編碼爲base64.Base64 returs字符串,但值參數期望字節 – juliak

回答

2

確保兩者的選項相同。

例如,C#默認填充「=」。 Java可能不會期望它被填充。

可能還有其他不兼容的選項,比如在末尾添加新行或者在中間分割到多行,但是填充是我想說的最明顯的選項。

+0

謝謝我沒有訪問解碼programm.Is它可能會把一些代碼來匹配Java解碼。如何我會知道如果墊或新線不同。 – juliak

+0

非常感謝您的評論,我是C#中的新成員。是否有任何代碼可以匹配C#和Java之間的編碼和解碼? – juliak

+0

對不起,我沒有任何東西,我做的唯一的java是android.Did,它們給你一個指定UTF-8的規範? – weston

0

我正在使用base64將數據從asp.net c#服務器代碼傳遞給java applet,並且沒有任何問題。
您可能在這裏唯一的問題是UTF8部分。
UTF8(或任何其他編碼)在編碼和解碼時必須由雙方使用。