반응형
황당한 오류에 빠져서 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 으로 파일이 저장될 줄은 상상도 못했습니다.
그래서 수정하는데 오래걸렸네요
파워쉘이라 그런가 봅니다.
반응형