일본어 URI ENCODING 문제

Kyu Yeon 'rebel' Lee·2022년 11월 20일
0

현상

  • 분명히 똑같은 문장인데 URI Encoding이 다르게 나타나서 FILEPATH및 HASH키가 다르게 먹히는 현상 확인
  • 아무리 봐도 화면상에는 똑같은 문장
  • 그러나 URIEncoding시 뭔가 더 길게 나오는게 확인

원인

  • 일본어 인코딩은... 조합형과 문자형이 있음.
    • 조합형은 2개의 문자를 하나처럼 보이게 하는 방식의 유니코드 형식
    • 문자형은 1개의 문자에 모든것을 표시하는 방식
  • 가, 까, 다, 따 와 같이 우리나라에서 쌍자음을 표시하기 위해서 ㄱ가, ㄷ다로 하는거같은 느낌으로 해서 분명히 1바이트면 될게 2바이트가 되서 괴롭히게 됨

해결 방법

  • 둘중 하나를 무조건 써야하지만, 문자열의 특성을 고려해서 하나로 통일한 문자형 일본어 인코딩을 사용하도록 하자
  • Rust에서는 일본인이 만든 Japanese Unicode Combine Cargo가 있다.

비고

  • 확인해보니 다른곳에서도 문제가 많이 발생하는 듯 함
  • 일본어는 전각, 반각, 조합형 등 여러 고통스러운 경우가 많이 특히 주의가 필요한 듯 함. 전/반각 조합/문자형등에 구애받지 않도록 반드시 해시처리될 문자열은 꼭 Sanitizer같은거를 돌리도록 하자

참고 자료

0개의 댓글