溫馨提示×

substr如何應(yīng)對不同編碼

小樊
82
2024-10-16 01:27:54
欄目: 編程語言

substr 是 JavaScript 中的一個字符串方法,用于從給定索引處提取字符串的子字符串。默認(rèn)情況下,substr 使用 UTF-16 編碼處理字符串。但是,如果你需要處理不同編碼的字符串,可以使用以下方法:

  1. 將字符串轉(zhuǎn)換為 Uint8Array,這是一個包含原始字符串中每個字符的字節(jié)的數(shù)組。這樣,你可以指定編碼(如 ‘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 方法將字節(jié)數(shù)組轉(zhuǎn)換回字符串。
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('');
}

請注意,這些方法可能不適用于所有編碼。在使用這些方法之前,請確保你了解字符串的編碼以及如何處理它。

0