codememo

문자열을 버퍼 노드로 변환

tipmemo 2023. 8. 21. 21:21
반응형

문자열을 버퍼 노드로 변환

함수 호출 시 버퍼의 String을 반환하는 라이브러리를 사용하고 있습니다.

정확한 코드는

return Buffer.concat(stdOut).toString('utf-8');

하지만 저는 그것의 문자열 버전을 원하지 않습니다.

나는 단지 버퍼를 원합니다.

문자열을 버퍼로 다시 변환하는 방법입니다.

마치...

var bufStr = Buffer.concat(stdOut).toString('utf-8');
//convert bufStr back to only Buffer.concat(stdOut).

어떻게 하는 거지?

하려고 했습니다.

var buf = Buffer.from(bufStr, 'utf-8');

하지만 outf-8은 기능이 아닙니다.내가 할 때

var buf = Buffer.from(bufStr);

TypeError가 발생합니다. 이것은 입력된 배열이 아닙니다.

감사해요.

할 수 있는 일:

var buf = Buffer.from(bufStr, 'utf8');

그러나 이것은 약간 바보같기 때문에 다른 제안은 호출된 함수에서 최소한의 코드를 복사하여 원래 버퍼에 액세스할 수 있도록 하는 것입니다.이 작업은 해당 라이브러리의 세부 정보에 따라 상당히 쉬울 수도 있고 상당히 어려울 수도 있습니다.

사용할 수 있습니다.Buffer.from()문자열을 버퍼로 변환합니다.이에 대한 자세한 내용은 여기에서 확인할 수 있습니다.

var buf = Buffer.from('some string', 'encoding');

예를들면

var buf = Buffer.from(bStr, 'utf-8');

참고: John Zwinck의 의견을 답변으로 다시 게시합니다.

한 가지 문제는 이전 버전의 노드를 사용하고 있다는 것일 수 있습니다(현재는 업그레이드할 수 없습니다. 코드베이스가 실행됨).v4.3.1). 여기서 간단한 해결책은 다음과 같이 사용되지 않는 방법을 사용하는 것입니다.

new Buffer(bufferStr)

참고 #2:이것은 이전 버전에서 타격을 받은 사람들을 위한 것입니다.Buffer.from작동하지 않음

이것은 저에게 효과가 있습니다, 당신은 코드를 이렇게 바꿀 수 있습니다.

var responseData=x.toString();

로.

var responseData=x.toString("binary");

그리고 마지막으로

response.write(new Buffer(toTransmit, "binary"));

언급URL : https://stackoverflow.com/questions/37436824/convert-string-to-buffer-node

반응형