문자열을 버퍼 노드로 변환
함수 호출 시 버퍼의 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
'codememo' 카테고리의 다른 글
| mariadb에서 자동 커밋을 해제하는 방법은 무엇입니까? (0) | 2023.08.21 |
|---|---|
| PowerShell 선택적 인수가 호출자에 의해 설정되었는지 확인하는 방법 (0) | 2023.08.21 |
| CodeIgniter에서 pconnect 옵션의 장점/단점 (0) | 2023.08.21 |
| Android: 텍스트 편집에 초점을 맞출 때 자동으로 소프트 키보드 표시 (0) | 2023.08.21 |
| 한 번의 활동을 만들기 위한 공유 환경설정 (0) | 2023.08.21 |