최근 one.com
Ubuntu 16 및 Apache를 실행하는 Linux vps 서버에서 WordPress 사이트를 마이그레이션했습니다. åäö가 있는 이미지가 깨진 것처럼 보이는 것을 제외하고 모든 것이 잘 작동합니다. 마우스 오른쪽 버튼을 클릭하고 링크를 복사하면 다음이 표시됩니다.
/images/vara-p%C3%A5l%C3%A4st1.jpg
이것을 브라우저 주소 표시줄에 붙여넣고 Enter 키를 누르면 다음과 같이 됩니다.
/images/vara-påläst1.jpg
404 오류가 표시됩니다. /images/
디렉토리의 모든 파일이 나열된 디렉토리 로 이동하면 파일 vara-påläst1.jpg
이 거기에 있는 것을 볼 수 있습니다.
이미지 폴더에서 링크를 복사하면 다음이 제공됩니다.
/images/vara-pa%cc%8ala%cc%88st1.jpg
그러면 올바른 이미지가 확인됩니다.
분명히 파일 이름에 뭔가 문제가 있는 것 같습니다. 인코딩 문제인 것 같습니다. 이 문제를 해결하려고 했지만 convmv -f iso-8859-1 -t utf8 *
모든 파일이 이미 UTF-8로 인코딩되어 있으며 아무것도 업데이트되지 않는다고 합니다.
다른 네트워크 호스트에서 파일 이름을 전송한 후 åäö 문자가 포함된 파일 이름을 어떻게 수정합니까?
답변1
convmv
정확합니다. 파일 이름이 이미 UTF-8로 인코딩되었습니다. 아직은 올바르게 사용하기 위한 도구라고 생각합니다.
유니코드에서 å
문자 모양을 얻는 방법은 여러 가지가 있습니다. 첫 번째 방법은 å
(U+00E5)를 문자 자체로 링크에 인코딩하는 방식입니다.
그러나 법선 a
(U+0061)을 취하고 원 ̊
(U+030A)을 결합 문자로 추가하여 å
. 마이그레이션 중에 파일 이름을 첫 번째 표현에서 두 번째 표현으로 다시 코딩해야 합니다.
이것매뉴얼 페이지convmv
"Normalized Form C"(Linux에서 사용됨) 및 "Normalized Form D"(OS X에서 사용됨)를 참조합니다. 실험 결과 C타입은 å
자신만의 단어를 사용하는 것을 의미하고, D타입은 å
조합원을 사용하는 것을 의미합니다.
문제가 발생할 경우 알려진 체크포인트를 확보할 수 있도록 파일을 백업한 후 다음을 시도해 보십시오.
convmv --nfc -f utf8 -t utf8 *
또는 마이그레이션을 다시 시도하여 녹음 문제를 완전히 피할 수 있습니다.
이전 호스트에 셸 액세스 권한이 있는 경우 tar
사이트의 아카이브를 생성( tar czf my_site.tar.gz my_site_directory
)한 다음 해당 아카이브를 새 호스트에 복사하고 거기에서 압축을 풀 수 있습니다( tar xzf my_site.tar.gz
). 이렇게 하면 파일 이름이 이제 다른 파일의 데이터이므로 변경되는 것을 방지할 수 있습니다.