[Javascript] UUID/BINARY(16)를 부호있는 정수배열로 변환하기 Convert UUID/BINARY(16) to Signd Integer Array
프로그램 자료/Java Script 2018. 7. 10. 13:50출처2 : https://stackoverflow.com/questions/3195865/converting-byte-array-to-string-in-javascript
spring boot과 mysql로 개발을 하고 있는데, 기본키를 binary(16)의 uuid로 설정을 했다.
추후 데이터를 controller에서 @ModelAttribute로 값을 읽어들이는데, ajax를 통해 base64로 인코딩된 binary 데이터를 콘트롤러에서 인식을 잘 못하길래 만들게 되었다.
검색을 하다보니 javascript에서는 unsigned integer array로 변환하는 예제가 많더라.
var binaryStringEncodeBase64 = "EehaWBvLbKaSO3SGejQUzg==";
var signedIntArray = Base64StringToBinaryArray(binaryStringEncodeBase64);
function Base64StringToBinaryArray(base64str) {
// binary(16) 를 키로 사용할 때 controller에서 modelAttribute로 읽으면
// base64 encoding 된 데이터는 못 읽어온다.
// 이때 이 함수를 사용해서 signed int array로 변환하여 값을 넣어주면 읽어드린다.
var decodeString = atob(base64str);
var b = new Array();
var last = decodeString.length;
for (var i = 0; i < last; i++) {
var d = decodeString.charCodeAt(i);
if (d < 128)
b[i] = d;
else {
b[i] = d - 256;
}
}
return b;
}