阅读量:0
substr
是 JavaScript 中的一个字符串方法,用于从给定索引处提取字符串的子字符串。默认情况下,substr
使用 UTF-16 编码处理字符串。但是,如果你需要处理不同编码的字符串,可以使用以下方法:
- 将字符串转换为 Uint8Array,这是一个包含原始字符串中每个字符的字节的数组。这样,你可以指定编码(如 ‘utf-8’、‘utf-16le’、‘base64’ 等)来处理字符串。
function substr(str, start, length) { const encoder = new TextEncoder('utf-8'); const data = encoder.encode(str); const subData = data.slice(start, start + length); return new TextDecoder('utf-8').decode(subData); }
- 如果你知道字符串的确切编码,你可以使用
String.fromCharCode
和Array.from
方法将字节数组转换回字符串。
function substr(str, start, length) { const encoder = new TextEncoder('utf-8'); const data = encoder.encode(str); const subData = data.slice(start, start + length); return Array.from(new Uint16Array(subData)).map(char => String.fromCharCode(char)).join(''); }
请注意,这些方法可能不适用于所有编码。在使用这些方法之前,请确保你了解字符串的编码以及如何处理它。