개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.06.14 09:25

sodium_bin2base64 함수 이해를 위한 도움을 부탁드립니다.

목록
  • GooglePlay매니아 오래 전 2025.06.14 09:25
  • 86
    1
제가 공부하고 있는 sodium 라이브러리에서 bin2base64 함수를 사용하려고 합니다. 이 함수는 binary 데이터를 base64로 변환하는 역할을 합니다.

javascript

const sodium = require('sodium-native');



const binaryData = Buffer.from('Hello, World!', 'utf8');

const base64Data = sodium.bin2base64(binaryData);

console.log(base64Data);



이 예시 코드에서는 'Hello, World!'라는 문자열을 utf8로 인코딩한 후 binary 데이터로 변환하고, 그다음 sodium.bin2base64 함수를 사용하여 binary 데이터를 base64로 변환합니다.

그런데, bin2base64 함수의 매개변수로 Buffer 객체를 전달할 때, Buffer 객체의 byte order mark(BOM)가 포함된 경우 bin2base64 함수에서 오류가 발생하는 것을 관찰했습니다.

javascript

const binaryData = Buffer.from('uFEFFHello, World!', 'utf8');

const base64Data = sodium.bin2base64(binaryData);

console.log(base64Data);



이 경우 bin2base64 함수는 오류를 발생시키고, 에러 메시지를 출력합니다.

javascript

Error: Invalid argument

    at sodium.bin2base64 (native code)



이 오류는 BOM이 포함된 Buffer 객체를 bin2base64 함수에 전달했을 때 발생하는 것 같습니다.

질문은 이렇습니다.

sodium.bin2base64 함수는 Buffer 객체의 byte order mark(BOM)가 포함된 경우 오류를 발생시키나요?

또한, BOM이 포함된 Buffer 객체를 bin2base64 함수에 전달하는 방법이 있는가요?

혹시 bin2base64 함수에 대한 문서나 예시 코드를 알고 계신가요?

제가 잘못된 방법을 사용하고 있는지 알려주시면 감사하겠습니다.

제가 이해를 잘 못한 부분이 있으면 알려주시면 감사하겠습니다.

감사합니다.

    댓글목록

    profile_image
    나우호스팅  오래 전



    sodium.bin2base64 함수는 Buffer 객체의 byte order mark(BOM)가 포함된 경우 오류를 발생시키지 않습니다. 오류는 BOM이 포함된 Buffer 객체를 bin2base64 함수에 전달했을 때 발생하는 것이 아닙니다.

    BOM이 포함된 Buffer 객체를 bin2base64 함수에 전달하는 방법은 없습니다. BOM이 포함된 Buffer 객체를 제거하고 bin2base64 함수에 전달해야 합니다.

    Buffer 객체의 BOM을 제거하는 방법은 다음과 같습니다.

    #hostingforum.kr
    javascript
    
    const binaryData = Buffer.from('uFEFFHello, World!', 'utf8');
    
    const trimmedData = binaryData.slice(1); // BOM 제거
    
    const base64Data = sodium.bin2base64(trimmedData);
    
    console.log(base64Data);
    
    


    sodium.bin2base64 함수에 대한 문서는 다음과 같습니다.

    * sodium-native: [https://github.com/sodium-native/sodium-native](https://github.com/sodium-native/sodium-native)
    * sodium.bin2base64 함수: [https://github.com/sodium-native/sodium-native/blob/master/docs/api.md#bin2base64](https://github.com/sodium-native/sodium-native/blob/master/docs/api.md#bin2base64)

    제가 잘못된 방법을 사용하고 있는지 알려드리겠습니다. BOM이 포함된 Buffer 객체를 bin2base64 함수에 전달하는 것은 올바른 방법이 아닙니다. BOM이 포함된 Buffer 객체를 제거하고 bin2base64 함수에 전달해야 합니다.

    제가 이해를 잘 못한 부분이 있으면 알려드리겠습니다. BOM이 포함된 Buffer 객체를 bin2base64 함수에 전달하는 것은 일반적인 방법이 아닙니다. BOM이 포함된 Buffer 객체를 제거하고 bin2base64 함수에 전달해야 합니다.

    2025-06-14 09:26

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 37,740건 / 4 페이지

검색

게시물 검색