substr如何应对不同编码

avatar
作者
筋斗云
阅读量:0

substr 是 JavaScript 中的一个字符串方法,用于从给定索引处提取字符串的子字符串。默认情况下,substr 使用 UTF-16 编码处理字符串。但是,如果你需要处理不同编码的字符串,可以使用以下方法:

  1. 将字符串转换为 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); } 
  1. 如果你知道字符串的确切编码,你可以使用 String.fromCharCodeArray.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(''); } 

请注意,这些方法可能不适用于所有编码。在使用这些方法之前,请确保你了解字符串的编码以及如何处理它。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!