在我的代碼中(在doGet方法中的HttpServlet),我需要寫一個字節,可以取任何值,從0到255, .js文件。我在調試器中檢查了結果[1]的值爲0.但是,在外部文件中它被寫爲空格,當我嘗試讀取它時,其字節值爲「32」。我只有字節0這個問題,其餘的這是完美的。有任何想法嗎?Byte「0」用Java的OutputStream.write()函數寫成字節「32」
res.setContentType("image/gif");
res.setHeader("Content-Disposition","attachment;filename=myFile.js");
OutputStream os = res.getOutputStream();
byte[] result=encrypt(req.getParameter("original")); // Here result has values [64,0,81,80]
os.write(result,0,result.length);
我從一個外部JavaScript檢索值:
var whatever = data[1].charCodeAt(0); // whatever has value 32
我在JavaScript程序中看到了類似的問題,他們的權利寫入文件之前修復這個問題,包括這個循環:
for (var i=0; i<result.length; i++) {
result[i] = String.fromCharCode(result[i]); }
我已經做了一些測試,併爲Javascript工作。 Java中等價的是什麼?
謝謝
你爲什麼要設置內容類型'圖像/的JavaScript文件gif'? – 2012-01-16 08:51:01
因爲這個JS文件可以包含非文本字符(如這個字節0),並且如果我使用內容類型「text/javascript」會是一個問題,對不對?謝謝 – Arturo 2012-01-16 11:02:20
javascript是文本。我沒有意識到任何瀏覽器會使包含二進制字符的JavaScript變得有意義。 – 2012-01-16 11:04:23