• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

정규표현식

20.12.24 06:06 작성 조회수 128

1

정규표현식 쪽에서 이상한 현상이 생깁니다.

한글파일명에 한정되는 현상이며,  올바른 경로에 파일 저장 및 데이터베이스에도 기록되어 있으나 이름이 이상하게 바뀌어집니다.

 common.py파일에서  출력하면 파일이름은 날라가고  txt만남게 됩니다.

근데 이상한 점은 코드를 그대로 맥 터미널에서 실행시키면 문제가 없이 실행됩니다.

디버깅을 위해 노력해본 결과 정규표현식에서 문제인 것 같습니다.

 print(reg.sub('', '_'.join(filename.split())))

실행시 .txt만 남게 출력됩니다.

맥 터미널에서는 잘 되는데 왜 여기서만 안돼는지 대체 이유가 뭘까요?

코드가 같은데 실행결과가 다르니.. 어떻게 해결해야할지 ㅠ

 파이썬 버전은 둘 다 3.8.5 입니다.

아래는 코드 및 실행결과 첨부합니다.

답변 2

·

답변을 작성해보세요.

0

브라우저마다 인코딩 방식이 다르기 때문에 사실 말씀하신 그런 부분이 실제 서비스를 개발하거나 할때 의외로 별거 아닌데 시간을 엄청 잡아먹는 그런 부분중에 하나 입니다. 

여러가지 해결방법이 있겠지만 단순한 방법중 한가지라면 파일명을 따로 DB에 저장하고 실제 파일은 랜덤한 값으로 변환하여 저장하는 방법도 있습니다. 파일을 다운로드 해야하는 경우에는 이 파일을 다시 DB에 저장된 파일명으로 변환하여 보내주기도 합니다.

0

suhr님의 프로필

suhr

질문자

2020.12.24

브라우저를 사파리로 바꾸니까 해결됬습니다...

텍스트 인코딩 문제같네요.

덧붙여서 질문드리면 현업에서는 사용자들의 os, 브라우저가 다 다를텐데 이런 문제를 어떻게 해결하는지 궁금합니다!

다른분들을 위해 질문은 남겨놓습니다.