묻고답하기
서버 변경 후 한글 이름 이미지 엑박 문제에 대해 궁금한 점
2015.09.18 02:05
말주변, 글주변이 없어 장황하더라도 잘 검토해주셨으면 합니다.
1. 문제 상황
- 몇 일 전부터 3년 동안 죽어 있던 데이터와 DB를 복원해서 이래저래 만져보고 있습니다. 그러다 파일명이 한글로 된 이미지들이 본문에서 엑박이 뜨는 걸 확인했습니다. (아래 그림처럼요)
- 우클릭 해서 속성 확인해봤더니 이렇게 뜹니다.
- 이상하다 싶어 파일이 있는 폴더에 가봤습니다.
- 에잉? 역시 한글 이름이 깨져 있었고, 같은 문서에 첨부되어 있던 다른 파일은 심지어 파일명과 확장자를 구분해주는 마침표마저도 깨져 있었습니다.
- 그런데 신기하게도, 게시물 하단의 첨부 파일 다운로드 링크에선 다운로드가 되더군요.
- 클릭해서 열어봤더니, 잘 열립니다.
- 무슨 "빵.JPG"인가 했더니, 추억의 핑클빵이었습니다.
2. 문제가 발생하는 링크
- 현재 개인 컴퓨터에 테스트용으로 서버를 열어놓은지라 아쉽게도 직접적인 링크를 연결시켜 드리진 못하는 상황입니다;;
3. 의심 가는 부분
- 다른 질문답 게시물이나 사용자 팁 문서를 보니, 서버 이전 시에 이런 문제가 있을 수 있다고 하더군요.
- 첫째, 호스팅 업체에 따라 한글로 된 이미지 파일에 엑박이 뜰 수 있고. 둘째, 리눅스 서버에서 윈도우 서버로 옮길 때도 그럴 수 있다고 합니다.
- 현재 저는 이 두 경우 모두에 해당합니다. 기존 호스팅 업체에 연락해서 데이터와 DB 백업 파일을 추출했고, 이를 저희 집 PC에 윈도우 IIS로 테스트하고 있으니까요.
(현재로선 기존 호스팅 서비스를 연장 복구할 상황이 못 됩니다. 그리고 무슨 조화인지는 모르겠지만 호스팅 업체에서 추출해준 백업 tar 파일도 열어보면 한글로된 첨부 파일명이 이미 깨져 있더라구요ㅠ 게다가 이전 서버에서도 엑박이 있었을 것으로 의심되기도 하구요)
4. 어쩌면 문제 해결이 가능하지 않을까 혼자 생각한 내용
- 첨부 파일 다운로드가 가능한 걸로 보아, 어찌됐든 DB에선 file_srl이나 기타 등등의 변수값으로 엮여 있지 않나 하는 생각이 들었습니다. 이런 식으로요.
- 갑자기 이런 생각이 들더라구요. MySQL에서 어떤 명령을 해주면 첨부파일 폴더에 있는 파일명과 확장자를 source_filename의 값으로 바꿔줄 수 있지 않을까 하는 겁니다.
5. 그래서 궁금한 것 두 가지
- 제가 생각한 꼼수가 정말로 실현 가능한 걸까요? 그리고 가능하다면 구체적으로 어떤 명령문을 써야 하는 걸까요?
- 그리고 이 방법이 적절하지 않다면, 다른 수는 없을까요?
... 고수님들의 조언과 가르침 기다리겠습니다.
- [2016/12/09] 묻고답하기 방명록에 글 쓸때 아이콘, 이미지 리스트에서 선택해서 글을 쓰게 하고 싶어요. *3
- [2016/04/27] 묻고답하기 이미지 리사이징이 되지를 않습니다. *3
- [2016/04/02] 묻고답하기 게시판 사용자정의 이미지 첨부 *1
- [2015/12/23] 묻고답하기 ckeditor 에서 SHIFT+ENTER 로 줄바꿈(BR)시 한글 깨짐 현상
- [2015/09/07] 묻고답하기 misol's mobile board skin에서 이미지 확대
댓글 2
-
기진곰
2015.09.18 09:35
-
윤삼
2015.09.18 13:26
답변 감사합니다. 역시 보통 일이 아니로군요. 프로그램 개발은 좀 무리인 것 같고요...
시험 삼아 명령문 없이 노가다로 직접 해봤는데요, 이렇게요...
첨부파일 폴더에서 파일명을 영어나 숫자로 수정 -> xe_files 테이블 source_filenamer과 uploaded_filename에서도 동일한 이름으로 변경 -> xe_documents 테이블 content(즉, 게시물의 html 소스)에서도 삽입된 이미지 이름을 위와 같은 파일명으로 변경.
짜증이 그냥 확 밀려오는 작업입니다 ㅠㅠ 그래도 문서량이 얼마 없다는 점을 위로 삼아 한 번 해봐야겠어요ㅠ
웹호스팅에서 tar로 압축하면서 원래의 UTF-8 인코딩 정보가 누락되고, 그걸 윈도우 서버에 복원하면서 엉뚱한 인코딩으로 자동 변환된 것 같네요. 두 번 잘못 변환해 버리면 되돌리기 어렵습니다. 게다가 변환에 실패한 문자는 자동으로 언더바(_)로 바뀌기까지 했네요.
DB에 남아있는 source_filename, uploaded_filename 정보를 사용하면 원래대로 되돌릴 수도 있습니다. 그러나 DB에서 명령 한 줄로 처리될 만한 일은 아니고, DB의 파일명과 깨진 파일명을 대조해서 일일이 바꿔주는 프로그램을 별도로 개발해야 하는데... 견적 꽤나 나오겠네요 ㅠㅠ