TextEncoder
和TextDecoder
对象来处理文本数据的编码和解码,或者使用ArrayBuffer
和DataView
来处理二进制数据。JS 字节转换
在 JavaScript 中,我们可以使用不同的方法来处理字节的转换,以下是一些常见的字节转换操作及其对应的代码示例:
1. 字符串转换为字节数组
要将字符串转换为字节数组,可以使用TextEncoder
类,以下是一个示例:
const text = "Hello, World!"; const encoder = new TextEncoder(); const byteArray = encoder.encode(text); console.log(byteArray); // Uint8Array(13) [72, 101, 108, 108, 111, 44, 32, 87, 111, 114, 108, 100, 33]
2. 字节数组转换为字符串
要将字节数组转换为字符串,可以使用TextDecoder
类,以下是一个示例:
const byteArray = new Uint8Array([72, 101, 108, 108, 111, 44, 32, 87, 111, 114, 108, 100, 33]); const decoder = new TextDecoder(); const text = decoder.decode(byteArray); console.log(text); // "Hello, World!"
3. 将数字转换为字节数组
要将数字转换为字节数组,可以使用DataView
类,以下是一个示例:
const number = 123456; const buffer = new ArrayBuffer(4); const view = new DataView(buffer); view.setUint32(0, number); const byteArray = new Uint8Array(buffer); console.log(byteArray); // Uint8Array(4) [0, 1, 52, 64]
4. 将字节数组转换为数字
要将字节数组转换为数字,也可以使用DataView
类,以下是一个示例:
const byteArray = new Uint8Array([0, 1, 52, 64]); const buffer = byteArray.buffer; const view = new DataView(buffer); const number = view.getUint32(0); console.log(number); // 123456
相关问题与解答
问题1:如何将一个字符串中的每个字符转换为其 ASCII 码值的字节数组?
答案1: 可以通过遍历字符串中的每个字符,然后使用charCodeAt()
方法获取每个字符的 ASCII 码值,最后将这些值存储在一个字节数组中,以下是一个示例:
const text = "Hello"; const byteArray = new Uint8Array(text.length); for (let i = 0; i < text.length; i++) { byteArray[i] = text.charCodeAt(i); } console.log(byteArray); // Uint8Array(5) [72, 101, 108, 108, 111]
问题2:如何将一个字节数组转换为一个包含对应 ASCII 字符的字符串?
答案2: 可以通过遍历字节数组中的每个元素,然后使用String.fromCharCode()
方法将每个 ASCII 码值转换为相应的字符,并将这些字符拼接成一个字符串,以下是一个示例:
const byteArray = new Uint8Array([72, 101, 108, 108, 111]); let result = ''; for (let i = 0; i < byteArray.length; i++) { result += String.fromCharCode(byteArray[i]); } console.log(result); // "Hello"
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1076105.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复