以下のコードには、パラメータ文字列 "¥¥"(ユーロ記号)として受け取るJS関数が含まれています。 これらの文字のそれぞれをASCII相当の整数に変換する必要があります(ISO-8859-1では128)。文字をJavaScriptのASCII拡張整数値に変換する
しかし、t [0]とt [1]は "128"の代わりに "8364"という値をとります。私は間違って何をしていますか? ISO-8859-1の代わりにUTF-8を使用すると、値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>
詳しい話は、私はこれらの2つのバイトは、整数[128128]を表す、以下のJavaコードで書かれたファイル「output.js」から、この「€€」を、貼り付けることです。私は[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
€?そんな獣はいますか? – bzlm
ISO-8859-1には '€'はありません。窓1252を意味しましたか? – dan04
私は問題の説明を更新しました。私はISO-8859-1でファイルを作成しようとしましたが、おそらく上記のコードはこの目的のために間違っています。助けてもらえますか?ありがとう – Arturo