Bất kỳ ai biết đoạn mã JavaScript tốt để chuyển đổi HEX chuỗi được mã hóa thành base64 chuỗi được mã hóa?Chuyển đổi HEX sang Base64 cho JavaScript
15
A
Trả lời
13
if (!window.atob) {
var tableStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz/";
var table = tableStr.split("");
window.atob = function (base64) {
if (/(=[^=]+|={3,})$/.test(base64)) throw new Error("String contains an invalid character");
base64 = base64.replace(/=/g, "");
var n = base64.length & 3;
if (n === 1) throw new Error("String contains an invalid character");
for (var i = 0, j = 0, len = base64.length/4, bin = []; i < len; ++i) {
var a = tableStr.indexOf(base64[j++] || "A"), b = tableStr.indexOf(base64[j++] || "A");
var c = tableStr.indexOf(base64[j++] || "A"), d = tableStr.indexOf(base64[j++] || "A");
if ((a | b | c | d) < 0) throw new Error("String contains an invalid character");
bin[bin.length] = ((a << 2) | (b >> 4)) & 255;
bin[bin.length] = ((b << 4) | (c >> 2)) & 255;
bin[bin.length] = ((c << 6) | d) & 255;
};
return String.fromCharCode.apply(null, bin).substr(0, bin.length + n - 4);
};
window.btoa = function (bin) {
for (var i = 0, j = 0, len = bin.length/3, base64 = []; i < len; ++i) {
var a = bin.charCodeAt(j++), b = bin.charCodeAt(j++), c = bin.charCodeAt(j++);
if ((a | b | c) > 255) throw new Error("String contains an invalid character");
base64[base64.length] = table[a >> 2] + table[((a << 4) & 63) | (b >> 4)] +
(isNaN(b) ? "=" : table[((b << 2) & 63) | (c >> 6)]) +
(isNaN(b + c) ? "=" : table[c & 63]);
}
return base64.join("");
};
}
function hexToBase64(str) {
return btoa(String.fromCharCode.apply(null,
str.replace(/\r|\n/g, "").replace(/([\da-fA-F]{2}) ?/g, "0x$1 ").replace(/ +$/, "").split(" "))
);
}
function base64ToHex(str) {
for (var i = 0, bin = atob(str.replace(/[ \r\n]+$/, "")), hex = []; i < bin.length; ++i) {
var tmp = bin.charCodeAt(i).toString(16);
if (tmp.length === 1) tmp = "0" + tmp;
hex[hex.length] = tmp;
}
return hex.join(" ");
}
+0
Kính gửi @coder hacker, vui lòng xem câu hỏi của tôi: http://stackoverflow.com/questions/34963963/converting-a-hex-string-of-a-raw-image -to-a-hex-chuỗi-of-a-bitmap-hình ảnh-trong-java –
31
Nếu bạn đang làm việc trong Node hoặc sử dụng Browserify, bạn có thể sử dụng
var base64String = new Buffer(hexString, 'hex').toString('base64')
hoặc
var hexString = new Buffer(base64String, 'base64').toString('hex')
10
Các bình luận xuất sắc bởi @dandavis được sửa đổi bởi StackOverflow, và có một số các ký tự ẩn kỳ lạ.
Dưới đây là là một trong lót:
btoa("a6b580481008e60df9350de170b7e728".match(/\w{2}/g).map(function(a){return String.fromCharCode(parseInt(a, 16));}).join(""))
hay:
function hexToBase64(hexstring) {
return btoa(hexstring.match(/\w{2}/g).map(function(a) {
return String.fromCharCode(parseInt(a, 16));
}).join(""));
}
hexToBase64("a6b580481008e60df9350de170b7e728");
Cả hai trở lại:
"prWASBAI5g35NQ3hcLfnKA=="
Các vấn đề liên quan
- 1. Chuyển đổi hex sang float
- 2. Chuyển đổi system.windows.media.brush sang mã màu hex
- 3. Chuyển đổi từ RGB int sang Hex
- 4. Java - Chuyển đổi hình ảnh sang Base64
- 5. Chụp ảnh và chuyển đổi sang Base64
- 6. Chuyển đổi base64 sang PDF trong Java
- 7. Chuyển đổi base64 sang Hình ảnh trong C#
- 8. chuyển đổi html sang javascript
- 9. Làm thế nào để chuyển đổi tệp sang Base64?
- 10. Chuyển đổi màu hex sang RGB và ngược lại
- 11. Chuyển đổi số thập phân sang hex bằng Erlang?
- 12. chuyển đổi tệp âm thanh sang base64 bằng cách sử dụng javascript
- 13. Chuyển đổi VBScript sang Javascript
- 14. Chuyển đổi JavaScript sang Java
- 15. Chuyển đổi dữ liệu nhị phân thành base64 bằng javascript
- 16. Chuyển đổi Hex thành Double
- 17. Chuyển đổi hình ảnh base64 thành StringIO cho Carrierwave
- 18. Chuyển đổi HTML + JavaScript sang exe
- 19. Chuyển đổi đôi vào hex trong C#
- 20. Chuyển đổi XML sang CSV bằng Javascript
- 21. chuyển đổi int nổi để hex
- 22. Chuyển đổi một chuỗi hex đến một int hex
- 23. Perl chuyển đổi hình ảnh thành base64
- 24. Chuỗi chuyển đổi PHP thành hex và hex thành chuỗi
- 25. Javascript: chuyển đổi số nguyên có dấu (hex) thành giá trị javascript
- 26. Sass - Chuyển đổi Hex để RGBA cho opacity nền
- 27. Chuyển đổi byte [] thành chuỗi Base64 cho dữ liệu URI
- 28. Chuyển đổi phao sang bit
- 29. Chuyển đổi HEX để RGBA trong Stylus
- 30. Chuyển đổi tệp thành chuỗi HEX Python
btoa ("4142434445464748494a4b4c4d4e4f505152535455565758595a" .match (/ \ w {2} /g).map(function(a){return String.fromCharCode (parseInt (a, 16));}) .join ("")) – dandavis
Có một ' '(không chiều rộng không joiner theo sau là một không gian chiều rộng bằng không) trong nhận xét @dandavis ', làm cho lỗi bị lỗi với lỗi khá khó hiểu" SyntaxError: ký tự không hợp lệ "trong Firefox và" SyntaxError: Mã thông báo không mong muốn ILLEGAL " trong Chrome. Đây là mã cố định: 'btoa (" 4142434445464748494a4b4c4d4e4f505152535455565758595a ".match (/ \ w {2}/g) .map (hàm (a) {return String.fromCharCode (parseInt (a, 16));}) .join (" "))' – waldyrious
** CẬP NHẬT: ** Tôi đã thử dán một phiên bản làm việc vào bình luận trước của mình, nhưng có vẻ như đó là StackOverflow, người đang thêm các nhân vật vô hình - cái quái gì thế ?! Vì vậy, tôi đoán, bây giờ giải pháp duy nhất là thử sao chép mã vào trình chỉnh sửa hiển thị các ký tự vô hình như vậy (hãy thử https://www.diffchecker.com/ nếu bạn không có bất kỳ thao tác nào) và xóa thủ phạm. Nó sẽ làm việc sau đó. – waldyrious