Javascript八進制轉義字符轉中文

讀取git輸出時,發現當設置core.quotepath=false時,輸出的中文會被轉義為8進制。不更改設置的話,需要手動轉回中文。

源代碼

function Octal2Chinese(str) {
  const matches = str.match(/(\\\d{3}){3}/g);
  if (matches) matches.forEach(match => {
    let encoded = '';
    const splits = match.split('\\');
    splits.forEach(code => !code || (encoded += '%' + parseInt(code, 8).toString(16)));
    const cChar = decodeURI(encoded);
    str = str.replace(match, cChar);
  });
  return str;
}

測試結果

console.log(Octal2Chinese('\\344\\270\\255\\346\\226\\207'))
// >> 中文

所屬標簽

無標簽

25选5玩法中奖