2016-10-20 16 views
9

Có thể sử dụng đầy đủ ngôn ngữ Trung Quốc trong tên tệp nội dung (hình ảnh) trong iOS không? Nếu không, phần nào của các ngôn ngữ lớn được hỗ trợ trong tên tệp, tìm kiếm chuỗi và các hoạt động xử lý tệp khác?Tên tệp Unicode trong iOS

+3

Bạn đã thử chưa? Nó có hoạt động không? – rmaddy

+0

Về mặt lý thuyết, toàn bộ "bảng chữ cái" của Trung Quốc nên hoạt động ... nhưng đó là một nhiệm vụ khổng lồ để kiểm tra, như một người không nói/viết/đọc, không phải người Trung Quốc. Và sau đó là các vấn đề của các ngôn ngữ khác ... mà tôi cũng không biết. Vì vậy, không, tôi đã không thử nó. Và không có khả năng làm một bài kiểm tra đầy đủ (hoặc chính xác). Tôi hy vọng cho một tài liệu tham khảo có thẩm quyền hoặc câu trả lời từ một ai đó mà sẽ biết. – Confused

+0

Tôi cho rằng, có lẽ sai, rằng nói chuyện liên tục của Apple về hỗ trợ unicode và nội địa hóa, hệ thống tập tin của họ là hoàn toàn có khả năng, có nghĩa là họ đang hỗ trợ tất cả các ngôn ngữ và tất cả các bộ ký tự.Nhưng tôi không muốn dựa vào giả định đó mà không có sự chắc chắn nào đó từ một nguồn thông tin rộng lớn hơn về những vấn đề này. Đó là gần như bất cứ ai khác hơn tôi. – Confused

Trả lời

1

Hệ thống tệp iOS sử dụng HFSX phân biệt chữ hoa chữ thường, là biến thể của HFS Plus và sử dụng cùng các quy tắc cho tên tệp và mã hóa ký tự.

Các quy tắc đó được trình bày trong một số phần của Apple Technote 1150.

Các lưu ý quan trọng là:

  • Bạn có thể sử dụng lên đến 255 ký tự 16-bit Unicode cho mỗi tập tin hoặc thư mục tên như đã mô tả trong phần HFS Plus Names của Technote 1150.
  • Các hệ thống tập tin ở mức độ cơ bản của nó sử dụng Unicode v2.0 (điều này là cố định) và chuỗi phải được lưu trữ theo thứ tự hoàn toàn bị phân hủy. Điều này ngăn cản việc sử dụng một số "biểu mẫu tương đương" - nghĩa là chúng phải được chuyển thành dạng bị phân tách. Điều này được mô tả chi tiết trong phần Unicode Subtleties của Technote 1150. Phần này nêu chi tiết các vấn đề khác và cần được đọc kỹ.
  • Có thể tìm thấy danh sách các ký tự không hợp lệ trong số Decomposition Table này.
  • Ký tự đại tràng ':' được sử dụng làm dấu tách thư mục và không hợp lệ trong tên tệp và thư mục.
4

iOS và Mac OS hiện đang sử dụng HFS+ filesystem, hỗ trợ đầy đủ Unicode trong tên tệp. Điều này có nghĩa cơ bản là bất kỳ nhân vật nào, kể cả tiếng Trung Quốc và các ngôn ngữ khác của con người. Hệ thống tệp cho phép tối đa 255 ký tự, cho hầu hết các ngôn ngữ là khoảng 255 điểm mã. (Tôi thấy lưu ý rằng độ dài dựa trên các ký tự được mã hóa UTF16. Có các ký tự yêu cầu nhiều hơn 16 bit để mã hóa, như biểu tượng cảm xúc mà bạn cũng có thể sử dụng, nhưng bạn sẽ có ít ký tự hơn được phép.)

Các API tệp trên iOS (NSFileManager, v.v.) phải chứa các chuỗi Unicode mà không cần thêm bất kỳ công việc nào. Lưu ý rằng các chuỗi Unicode được chuẩn hóa theo một cách cụ thể: ví dụ: một ký tự é có thể được biểu diễn bằng nhiều cách khác nhau trong Unicode, nhưng sẽ bị phân tách theo cách được chuẩn hóa thành tên tệp.

Điểm mấu chốt là, bạn có thể thoải mái sử dụng các chuỗi Unicode làm tên tệp của bạn miễn là chúng có độ dài hợp lý. Bởi vì các tên Unicode siêu dài sẽ bắt đầu chạy vào các vấn đề độ dài theo một cách hơi khó đoán (thực sự phức tạp và không cần thiết để tính toán), có lẽ bạn nên đặt một số giới hạn chiều dài tự áp đặt.

APFS là hệ thống tệp thế hệ tiếp theo mà Apple đang phát triển và sẽ sớm xuất hiện trên iOS tại một số điểm. Tôi không thể tìm thấy thông tin về mã hóa tên tập tin nhưng đó là một giả định hợp lý rằng nó sẽ hỗ trợ bất cứ điều gì HFS + hỗ trợ, nếu không nhiều hơn như vậy.

Các vấn đề liên quan