2바이트라 깨지는거같긴한데/...
base64 인코딩에서 한글이 깨지는 이유가 머임?
4564564..(59.16)
2016-03-19 22:23
추천 0
댓글 10
다른 게시글
-
로또의 진실익명(223.131) | 16.03.19추천 0
-
타이젠은 사랑입니다♡ [3]유자차마시..(iujacha) | 16.03.19추천 0
-
형님들 리눅스에서 테라텀처럼 하고 싶은데 어떻게 하나요? [3]123(165.132) | 16.03.19추천 0
-
C언어 사이트 어디냐? [3]네이트(117.55) | 16.03.19추천 0
-
안드 노예야 [1]알허(1.219) | 16.03.19추천 0
-
알고리즘 소스같은거 보고 배워도 괜찮을까요..? [5]강동원빈(110.47) | 16.03.19추천 2
-
여기 모임도있음? 나 컴알못인데 가두됨? [1]익명(121.169) | 16.03.19추천 0
-
형들 한번만더 질문점 ㅜㅜ [7]익명(59.24) | 16.03.19추천 0
-
집 도착☎2.73™(roidz) | 16.03.19추천 0
-
엔터인데 무슨 상관임?? [2]익명(119.197) | 16.03.19추천 0
base64도 구현하기에 따라선 한글 인코딩/디코딩 가능함. 코쟁이들이 그런 걸 신경 안써서 그렇지..
그리고 cp949가 2바이트인거지 요즘은 유니코드 시대라 엔간해선 한글 한글자에 3바이트다
utf8땜시
유니코드인걸 명시안해서 깨짐 ㅇㅇ..
base64로 인코딩했다가 디코딩하면 깨진다는거야? 구현에 따라 다른게 아니라 base64는 아무 스트림이나 다 인코딩/디코딩 가능한데??
ㄴ정확한 이유는 모르겠는데 String을 인코딩할 때 non-ASCII캐릭터를 멀쩡하게 인코드하지 못하는 base64 라이브러리가 종종 있음. 그래서 편법으로 urlencode를 한 후 그걸 다시 base64로 인코딩하는 등의 더러운 방법이 들어감.
원래는 base64가지고 심지어 이미지같은것도 인코딩하고 그러는지라 넣은대로 나오는 게 정상인 게 맞는데.
c/c++만 다뤄서 이런 문제가 있을 수 있는지 몰랐네. 근데 8 bit ascii character 말고는 에러가 나면 애초에 base64 인코딩을 하는 의미가 없지 않나?
ascii값이 아닌 값을 처리할 시 문제가 생기는 대표적인 예:
https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding#The_.22Unicode_Problem.22
저 위의 예는 UTF16한정이긴 한데 때때로 보면 utf8도 깨먹고 그러고... 자바같은 경우 위에 SongU말처럼 UTF8이라고 파라메터에 명시해주지 않으면 가끔 시스템 기본 인코딩이랑 꼬아먹어서 문자열이 깨짐. 나도 솔직히 ASCII만 쓸 거면 그거 왜 쓰는진 모르겠는데..