Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

맥에서 업로드한 파일명 윈도우에서 자모 분리되어나오는 문제 #966

Closed
kimyu711 opened this issue Apr 5, 2019 · 2 comments

Comments

@kimyu711
Copy link
Member

commented Apr 5, 2019

윈도우와 맥이 각기 다른 유니코드 인코딩방식을 사용하는데 (둘 다 표준)
윈도우는 NFC, 맥은 NFD를 사용함.

https://www.php.net/manual/en/class.normalizer.php

XeStorage 클래스에서 체크해서 다음 버전에 반영할 것.

@kimyu711 kimyu711 added this to the 3.0-next milestone Apr 5, 2019

@kimyu711 kimyu711 self-assigned this Apr 5, 2019

@jdssem

This comment has been minimized.

Copy link

commented Apr 5, 2019

저도 Laravel로 개발중인 앱에서 같은 문제를 겪었는데 아래와 같은 방식의 간단한 메서드만 만들어 사용해도 되더군요.

    /**
      * NFC 인코딩 방식으로 파일명 반환
      *
      * @param \Illuminate\Http\UploadedFile $file
      * @return string|null
      */
     protected function getNormalizedOriginalName(\Illuminate\Http\UploadedFile $file)
     {
         $filename = $file->getClientOriginalName();

         if (!\Normalizer::isNormalized($filename)) {
             $filename = \Normalizer::normalize($filename);
         }

         return $filename;
     }
@kimyu711

This comment has been minimized.

Copy link
Member Author

commented Apr 5, 2019

네. 감사합니다~ 일부 호스팅서버에서는 해당 함수가 내장되어있지않아서 intl extension도 확인해야 하더라구요. 함께 검토해서 다음 코어버젼에 반영시키겠습니다. 감사합니다~

@kimyu711 kimyu711 removed this from the 3.0.2 milestone May 24, 2019

@kimyu711 kimyu711 added this to the 3.0-next milestone Jun 19, 2019

@bnu bnu added the priority/high label Jul 11, 2019

jhyeon1010 added a commit that referenced this issue Jul 24, 2019

@jhyeon1010 jhyeon1010 self-assigned this Jul 24, 2019

@jhyeon1010 jhyeon1010 closed this Jul 24, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
5 participants
You can’t perform that action at this time.