当我使用javascript将文件从文本转换为十六进制时,我得到了这个:
3C 3F 78 6D 6C 20 76 65 72 73 69 6F 6E 3D 22 31
2E 30 22 20 65 6E 63 6F 64 69 6E 67 3D 22 55 54
46 2D 38 22 20 3F 3E A3 C7 27 37 32 07 66 57 27
36 96 F6 E3 D2 23 22 E3 02 23 EA A3 C6 36 86 16
E6 E6 56 C3 EA 20 20 3C 74 69 74 6C 65 3E 57 33
53 63 68 6F 6F 6C 73 20 48 6F 6D 65 20 50 61 67
65 3C 2F 74 69 74 6C 65 3E A2 02 03 C6 C6 96 E6
B3 E6 87 47 47 07 33 A2 F2 F7 77 77 72 E7 73 37
36 36 86 F6 F6 C7 32 E6 36 F6 D3 C2 F6 C6 96 E6
B3 EA 20 20 3C 64 65 73 63 72 69 70 74 69 6F 6E
3E 46 72 65 65 20 77 65 62 20 62 75 69 6C 64 69
6E 67 20 74 75 74 6F 72 69 61 6C 73 3C 2F 64 65
73 63 72 69 70 74 69 6F 6E 3E A2 02 03 C6 97 46
56 D3 EA 20 20 20 20 3C 74 69 74 6C 65 3E 52 53
53 20 54 75 74 6F 72 69 61 6C 3C 2F 74 69 74 6C
65 3E A2 02 02 02 03 C6 C6 96 E6 B3 E6 87 47 47
07 33 A2 F2 F7 77 77 72 E7 73 37 36 36 86 F6 F6
C7 32 E6 36 F6 D2 F7 86 D6 C2 F7 86 D6 C5 F7 27
37 32 E6 17 37 03 C2 F6 C6 96 E6 B3 EA 20 20 20
20 3C 64 65 73 63 72 69 70 74 69 6F 6E 3E 4E 65
77 20 52 53 53 20 74 75 74 6F 72 69 61 6C 20 6F
6E 20 57 33 53 63 68 6F 6F 6C 73 3C 2F 64 65 73
63 72 69 70 74 69 6F 6E 3E A2 02 03 C2 F6 97 46
56 D3 EA 20 20 3C 69 74 65 6D 3E A2 02 02 02 03
C7 46 97 46 C6 53 E5 84 D4 C2 05 47 57 46 F7 26
96 16 C3 C2 F7 46 97 46 C6 53 EA 20 20 20 20 3C
6C 69 6E 6B 3E 68 74 74 70 73 3A 2F 2F 77 77 77
2E 77 33 73 63 68 6F 6F 6C 73 2E 63 6F 6D 2F 78
6D 6C 3C 2F 6C 69 6E 6B 3E A2 02 02 02 03 C6 46
57 36 37 26 97 07 46 96 F6 E3 E4 E6 57 72 05 84
D4 C2 07 47 57 46 F7 26 96 16 C2 06 F6 E2 05 73
35 36 36 86 F6 F6 C7 33 C2 F6 46 57 36 37 26 97
07 46 96 F6 E3 EA 20 20 3C 2F 69 74 65 6D 3E A3
C2 F6 36 86 16 E6 E6 56 C3 EA A3 C2 F7 27 37 33
EA
这是来自命令行(cat rss | od -A n -t x1
):
3C 3F 78 6D 6C 20 76 65 72 73 69 6F 6E 3D 22 31
2E 30 22 20 65 6E 63 6F 64 69 6E 67 3D 22 55 54
46 2D 38 22 20 3F 3E 0A 3C 72 73 73 20 76 65 72
73 69 6F 6E 3D 22 32 2E 30 22 3E 0A 0A 3C 63 68
61 6E 6E 65 6C 3E 0A 20 20 3C 74 69 74 6C 65 3E
57 33 53 63 68 6F 6F 6C 73 20 48 6F 6D 65 20 50
61 67 65 3C 2F 74 69 74 6C 65 3E 0A 20 20 3C 6C
69 6E 6B 3E 68 74 74 70 73 3A 2F 2F 77 77 77 2E
77 33 73 63 68 6F 6F 6C 73 2E 63 6F 6D 3C 2F 6C
69 6E 6B 3E 0A 20 20 3C 64 65 73 63 72 69 70 74
69 6F 6E 3E 46 72 65 65 20 77 65 62 20 62 75 69
6C 64 69 6E 67 20 74 75 74 6F 72 69 61 6C 73 3C
2F 64 65 73 63 72 69 70 74 69 6F 6E 3E 0A 20 20
3C 69 74 65 6D 3E 0A 20 20 20 20 3C 74 69 74 6C
65 3E 52 53 53 20 54 75 74 6F 72 69 61 6C 3C 2F
74 69 74 6C 65 3E 0A 20 20 20 20 3C 6C 69 6E 6B
3E 68 74 74 70 73 3A 2F 2F 77 77 77 2E 77 33 73
63 68 6F 6F 6C 73 2E 63 6F 6D 2F 78 6D 6C 2F 78
6D 6C 5F 72 73 73 2E 61 73 70 3C 2F 6C 69 6E 6B
3E 0A 20 20 20 20 3C 64 65 73 63 72 69 70 74 69
6F 6E 3E 4E 65 77 20 52 53 53 20 74 75 74 6F 72
69 61 6C 20 6F 6E 20 57 33 53 63 68 6F 6F 6C 73
3C 2F 64 65 73 63 72 69 70 74 69 6F 6E 3E 0A 20
20 3C 2F 69 74 65 6D 3E 0A 20 20 3C 69 74 65 6D
3E 0A 20 20 20 20 3C 74 69 74 6C 65 3E 58 4D 4C
20 54 75 74 6F 72 69 61 6C 3C 2F 74 69 74 6C 65
3E 0A 20 20 20 20 3C 6C 69 6E 6B 3E 68 74 74 70
73 3A 2F 2F 77 77 77 2E 77 33 73 63 68 6F 6F 6C
73 2E 63 6F 6D 2F 78 6D 6C 3C 2F 6C 69 6E 6B 3E
0A 20 20 20 20 3C 64 65 73 63 72 69 70 74 69 6F
6E 3E 4E 65 77 20 58 4D 4C 20 74 75 74 6F 72 69
61 6C 20 6F 6E 20 57 33 53 63 68 6F 6F 6C 73 3C
2F 64 65 73 63 72 69 70 74 69 6F 6E 3E 0A 20 20
3C 2F 69 74 65 6D 3E 0A 3C 2F 63 68 61 6E 6E 65
6C 3E 0A 0A 3C 2F 72 73 73 3E 0A
JavaScript:
const uploads = []
const fileSelector = document.getElementById('file-selector')
fileSelector.addEventListener('change', (event) => {
console.time('FileOpen')
const file = event.target.files[0]
const filereader = new FileReader()
filereader.onloadend = function(evt) {
if (evt.target.readyState === FileReader.DONE) {
const uint = new Uint8Array(evt.target.result)
let bytes = []
uint.forEach((byte) => {
bytes.push(byte.toString(16))
})
const hex = bytes.join('').toUpperCase()
test=""
for(var i=0; i<hex.length; i++) {
test += hex.charAt(i) + hex.charAt(i+1) + ' ';
i++
}
console.log(test);
console.log("hex");
console.log(hex);
uploads.push({
filename: file.name,
filetype: file.type ? file.type : 'Unknown/Extension missing',
binaryFileType: getMimetype(hex, (file.type ? file.type : ''), file.name),
hex: hex
})
render()
}
console.timeEnd('FileOpen')
}
const blob = file; //file.slice(0, 300);
console.log("blob");
console.log(blob);
console.log("read as text: ");
//console.log(filereader.readAsText(blob));
filereader.readAsArrayBuffer(blob);
})
[...]
当我获取JS hex结果并将其转回文本时,我得到了这个混乱:
'72fW'6 #“ # 6 V W3Schools首页 GG3 wwr s766 2 6 免费网页建设教程 ƗFV RSSTutorial GG3 wwr s766 2 6 '72 7 W3Schools的新RSS教程 FV F F S GWF &amp; F F S https://www.w3schools.com/xml FW67&amp; F Wr GWF &amp;5s566 3 FW67&amp; F 6 V '73
我不是从另一个十六进制那里得到的。
那么为什么十六进制不同?
答案 0 :(得分:3)
问题是javascript转换不包括左侧的零。如果转换字节是一位数,则必须包含零。例如,如果convertion返回A,则必须包含零 - &gt; 0A