next.js에서 동적 라우팅을 사용해 url 파라미터를 앱 내부로 가져와야 했다. 공식 문서를 보고 구현해보니 이렇게 됐다.
URL : localhost:3000/workout/가슴
???
문제 : 한글이 이상한 문자로 변환되서 나온다
원인 : URL 인코딩이 일어났기 때문임. URL 인코딩 과정에서 한국어가 16진수로 변환되기 때문에 한국어 '가슴'이 위에 문자열로 변환된 것.
해결 : 다시 디코딩하면 된다. 자바스크립트에서 decodeURIComponent() 함수를 사용하면 된다.
const {bodyPart} = useParams(); //%EA%B0%80%EC%8A%B4
const bodyPartInKorean = decodeURIComponent(bodyPart) // 가슴
%16진수
형태로 변환함