1
私は、アップロードされたファイルを受け取り、それに相当する16進数を表示する短いJavaScript関数を持っています。元のファイルとヘキサエディタでの出力を比較すると、部分的に異なるが完全ではないことがわかります。出力の違いを引き起こしている何Javascript FileReaderがファイルを正しく読み取らない
2A 2A 54 49 38 33 46 2A 1A 0A 0A 43 72 65 61 74
2A 2A 54 49 38 33 46 2A 1A AA 43 72 65 61 74 65
:ここ
String.prototype.hexEncode = function(){
var hex, i;
var result = "";
for (i = 0; i < this.length; i++) {
hex = this.charCodeAt(i).toString(16);
result += ("" + hex).slice(-4);
}
return result
}
function upload() {
var file = document.getElementById("fileToUpload").files[0];
var reader = new FileReader();
reader.readAsText(file, "windows-1252");
reader.onload = function (evt) {
var program = evt.target.result.hexEncode();
program = program;
console.log(program);
}
}
は、元のファイルと隣同士に出力されますか?どんな助けでも大歓迎です。
は、あなたは[' .readAsArrayBuffer'](HTTPSを試してみました.org/ja-ja/docs/Web/API/FileReader/readAsArrayBuffer)を使用してください。 –
確実に、readAsText結果から16進ダンプを生成しないでください。さらに、デフォルト以外のエンコーディングを使用します。 readAsArrayBufferはあなたが望むものです。 – Kaiido
期待される結果は何ですか? – guest271314