js手动实现一个对于汉字的base64编码
时间: 2023-07-07 20:03:30 浏览: 51
Base64编码是一种用于将二进制数据转换成可打印的ASCII字符的编码方式。下面是使用JavaScript手动实现汉字的Base64编码的示例代码:
```javascript
function utf8_to_b64(str) {
return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function(match, p1) {
return String.fromCharCode('0x' + p1);
}));
}
const chineseStr = "你好,世界!";
const base64EncodedStr = utf8_to_b64(chineseStr);
console.log(base64EncodedStr);
```
这段代码中,我们先将汉字字符串通过 `encodeURIComponent` 方法进行 URL 编码,然后将 `%` 转义成 ASCII 字符,最后使用 `btoa` 方法进行 Base64 编码。需要注意的是,`btoa` 方法只能编码 ASCII 字符,因此我们需要先将 URL 编码后的字符串中的非 ASCII 字符转换回对应的字符。
输出结果为:`JUU0JUJEJUEwJUU1JTlDJUEyJUU1JThEJTk2JUEzJUU0JUJFJThCJUU2JTk5JTk1JUU0JUJFJTlCJUU0JUJGJTlEJUU1JTlCJUIw`。
相关问题
js手动实现一个base64编码
下面是JS手动实现Base64编码的示例代码:
```javascript
function base64Encode(str) {
var base64Chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
var result = '';
var i = 0;
var curChar, prevChar, nextChar;
while (i < str.length) {
curChar = str.charCodeAt(i++);
nextChar = str.charCodeAt(i++);
prevChar = str.charCodeAt(i - 2);
result += base64Chars.charAt(curChar >> 2);
result += base64Chars.charAt(((curChar & 3) << 4) | (nextChar >> 4));
result += i < str.length + 2 ? base64Chars.charAt(((nextChar & 15) << 2) | (prevChar >> 6)) : '=';
result += i < str.length + 1 ? base64Chars.charAt(prevChar & 63) : '=';
}
return result;
}
```
使用示例:
```javascript
var encodedStr = base64Encode('Hello, World!');
console.log(encodedStr); // SGVsbG8sIFdvcmxkIQ==
```
js实现base64编码
可以使用 JavaScript 的 btoa() 函数进行 Base64 编码。btoa() 函数将一个字符串转换为 Base64 编码的字符串。
例如,以下代码将字符串 "hello world" 进行 Base64 编码:
```
const str = "hello world";
const base64 = btoa(str);
console.log(base64); // 输出 "aGVsbG8gd29ybGQ="
```
注意:btoa() 函数只能编码 ASCII 字符串,如果字符串中包含非 ASCII 字符,将会抛出异常。