Tôi gặp sự cố với một số tệp trong thiết bị đầu cuối Linux (Ubuntu), có dấu trong tên. Ví dụ:UTF-8 Tên tệp trả về Không tìm thấy trong thiết bị đầu cuối linux
$ ls dir/
criação.png
Vì vậy, thiết bị đầu cuối trả về tệp đó, vì vậy nó tồn tại. Bây giờ, hãy xem liệu tệp có tồn tại hay không bằng lệnh đơn giản này:
$ [ -f criação.png ] && echo "File Exist" || echo "Not Exist"
Not Exist
Như bạn thấy, "Không tồn tại". Bây giờ, tôi có cùng một thư mục và tập tin trên OSX, sau đó tôi chạy lệnh tương tự và nó sẽ trả về này:
$ [ -f criação.png ] && echo "File Exist" || echo "Not Exist"
File Exist
tôi biết một chút về locale:
$ locale
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE=en_US.UTF-8
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
Trên Linux, " Không tồn tại ", trên OSX," File Exist "... Ai đó, biết cách sửa lỗi đó?
Có lẽ những có thể giúp:
http://nedbatchelder.com/blog/201106/filenames_with_accents.html
http://www.ruby-forum.com/topic/279105
CẬP NHẬT - Giải pháp
cuối cùng tôi đã tìm thấy một giải pháp cho vấn đề đó. Bạn cần phải đổi tên tập tin của bạn từ NFD đến NFC, đây là lệnh để sửa chữa tất cả các file:
cd dir/
convmv -r -i -f utf8 -t utf8 --nfc --notest .
Nguồn: http://blog.hbis.fr/2010/08/30/macox-utf8_filenames_normalization/
Vấn đề của tôi là với nginx. Ví dụ: '2012/11/08 17:05:34 [lỗi] 12102 # 0: * 128 mở()"/usr/share/nginx/www/wp-content/video tải lên/2012/09/celular-inclusão- digital.png "không thành công (2: Không có tệp hoặc thư mục nào), ứng dụng khách: 66.249.76.145, máy chủ: site.com, yêu cầu:" GET/wp-content/tải lên/2012/09/celular-inclus% C3% A3o- digital.png HTTP/1.1 ", host:" site.com "' – mateus007
Giải pháp là chính xác (MacOS sử dụng NFD nhưng khá nhiều thứ khác sử dụng NFC, gây ra các vấn đề tương thích khi MacOS có liên quan), nhưng bạn nên đăng nó như một câu trả lời . Câu trả lời của bạn chính xác hơn câu trả lời bạn đã chấp nhận! – Celada
'convmv -r -f iso8859-1 -t utf8 --nfc - không nhất. ' Nó sửa tên tập tin của tôi với giọng được tải lên bởi SFTP từ Windows sang Linux. –