프론트엔드에서 s3에 이미지 파일을 업로드하고, 업로드한 url을 가져와서 미리보기를 통해 렌더했다.
근데 요청도 잘 오는데 , s3주소에 들어가보면 깨진 이미지로 보이고,
UI에도 렌더가 깨진이미지로 되어있었다.
s3주소에서 깨진이미지여서 s3에 저장할때 (이미지를 업로드할때)문제가 있을거라고 생각했는데
구글링한 후 한글 파일 이름 때문이라는것을 알게되었다.
찾아보니,
'cat.jpg' => 'https://s3버킷주소.../cat.jpg'
'고양이.jpg' => 'https://s3버킷주소.../%EA%B3%A0%EC%96%91%EC%9D%B4.jpg'
이런식으로 파일이름을 받아서
url주소로 인코딩하는 과정에서 한글을 저렇게 바꾸어 놓는것이였다.
그래서 한글이름을 그대로 사용하려면, 인코딩된 주소를 `utf-8` 디코딩을 사용해서 가져와야한다
✨ const encodeUrl = (url: string) => {
try {
return encodeURI(url);
} catch (error) {
console.error("URL 인코딩 실패:", error);
return "";
}
};
.
.
.
return (
<ImageSection imageUrls={imageUrls} encodeUrl={encodeUrl} />
)
const ImageSection=(...)=>{
.
.
<Image
✨src={encodeUrl(url)}
alt={`이미지 ${index + 1}`}
layout="fill"
objectFit="cover"
unoptimized
/>
}
----
'🌴트러블슈팅' 카테고리의 다른 글
모바일 PWA 수신안됨 트러블슈팅 (4) | 2025.07.08 |
---|---|
git 충돌 - 트러블 슈팅 (1) | 2024.11.12 |