프로그래밍/개발메모

gcloud auth print-access-token 저장을 했는데 UTF-16 으로 저장되었다. / UTF16 문자열 읽기 / node.js

SIDNFT 2025. 3. 27. 21:37
반응형



 

황당한 오류에 빠져서 2시간을 날렸습니다.

gcloud auth print-access-token > token

이런식으로 구글 클라우드 토큰은 token 이라는 파일로 저장하려고 했습니다.

얼핏 포면 문제 없어 보입니다. 그런데 나중에 알고 보니

하단에 UTF-16 으로 되어있습니다.

console.log 로 찍어보면 

앞글자 두글자가 뭔가 생겨있고 글자는 보입니다.

그런데 이걸 json 으로 변환하면 보이지 않던 글자가 들어가게굅니다.

UTF-16 은 2바이트에 한글자기 때문에 전통적인 방식으로 읽으면 글자 사이에 0 이 들어가 있는거랑 같습니다.
이걸 json 은 데이터 유실이 없어야해서 전부 표기해버린 것이죠

방법은 간단합니다.

const token_bin = fs.readFileSync("token", "utf16le");

이런식으로 utf16le 형식을 지정해주면 됩니다.

편집기 제일 아래쪽에 이렇게 표시되어있네요

물론 저는 UTF16 으로 파일이 저장될 줄은 상상도 못했습니다. 

그래서 수정하는데 오래걸렸네요

파워쉘이라 그런가 봅니다.

반응형