下面的代碼包含一個JS函數,它接收參數String「€€」(歐元符號)。 我需要將這些字符中的每一個轉換爲它的ASCII擴展的整數(128與ISO-8859-1)。在Javascript中將字符轉換爲正確的ASCII擴展整數值
然而,t [0]和t [1]取值「8364」而不是「128」。我究竟做錯了什麼?請注意,如果我使用UTF-8而不是ISO-8859-1,則它們的值爲65533,而在JS調試器(Chrome和IE開發人員工具)中,將顯示一個問號而不是€符號。
感謝密爾
<html>
<head>
<meta http-equiv="Content-Type" content="text/javascript; charset=ISO-8859-1">
<title>JavaScript Scripting</title>
</head>
<body>
<script type="text/javascript" charset="ISO-8859-1">
function d(s)
{
var data = (s + "").split("");
var dataLength = data.length;
var t = [dataLength],n;
for(n=0;n<dataLength;n++)
t[n]=data[n].charCodeAt(0);
}
d("€€");
</script>
</body>
</html>
全文的是,我將這些「€€」來自文件「output.js」,其中這兩個字節被寫了下面的Java代碼,代表整數[128,128]。這就是爲什麼我需要T [0]和T [1]中獲取價值128
res.setContentType("application/octet-stream");
res.setHeader("Content-Disposition","attachment;filename=output.js;charset=ISO-8859-1");
ServletOutputStream os = res.getOutputStream();
char result[]=encode(req.getParameter("originalScript"));
// result[0] and result[1] have here integer value 128
String result2=new String(result);
// result2 is displayed here as non printable characters (blank)
os.print(result2);
// On output.js "€€" is displayed
€in ASCII?有這樣的野獸嗎? – bzlm 2012-02-17 08:24:27
ISO-8859-1沒有''''。你的意思是windows-1252? – dan04 2012-02-17 16:05:17
我已更新問題描述。我打算用ISO-8859-1創建文件,但上面的代碼可能是錯誤的。你能協助嗎?謝謝 – Arturo 2012-02-17 17:51:17