electron node - fi 를 통 해 dll 매개 변수 형식 문 제 를 호출 하고 utf 8 에서 utf 16 으로 전환 합 니 다.

927 단어 nodeelectron
dll 쪽 에서 파 라 메 터 를 연결 하려 면 utf16le (작은 엔 드) 에 BOM 형식 이 없어 야 합 니 다. nodejs 이 문자열 은 기본적으로 utf 8 입 니 다.
인터넷 상에 서 많은 iconv - lite 를 통 해 코드 를 바 꾸 는데 실제 사용 과정 에서 이상 적 이지 않다.
끊 임 없 는 모색 을 통 해 다음 과 같은 코드 변환 함 수 를 썼 다.
//    
function encode(str, sort = "le") {
  let resultArr = [];
  for (let i = 0; i < str.length; i++) {
    let utf16le = str.charCodeAt(i).toString(16);
    let highByte = utf16le.substr(0, 2);
    let lowByte = utf16le.substr(2, 4);
    if (!lowByte) {//      
      lowByte = highByte;
      highByte = "00";
    }
    let high = "0x" + highByte;
    let low = "0x" + lowByte;

    if (sort == "be") {//  
      resultArr.push(high)
      resultArr.push(low)
    } else if (sort == "le") {//  
      resultArr.push(low)
      resultArr.push(high)
    }
  }
  resultArr.push("\0");
  return Buffer.from(resultArr);
}

좋은 웹페이지 즐겨찾기