Tôi có một số mã sắp xếp cột bảng theo thuộc tính đối tượng. Nó xảy ra với tôi rằng trong tiếng Nhật hoặc tiếng Trung Quốc (ngôn ngữ không phải chữ cái), các chuỗi được gửi đến chức năng sắp xếp sẽ được so sánh theo cách một ngôn ngữ chữ cái sẽ.Phân loại có ý nghĩa gì với ngôn ngữ không phải chữ cái (nghĩa là Châu Á)?
Đưa ví dụ như một danh sách các tên họ của Nhật Bản:
寿拘 (Suzuki)
松坂 (Matsuzaka)
松井 (Matsui)
山田 (Yamada)
藤本 (Fujimoto)
Khi tôi sắp xếp danh sách trên qua Javascript, kết quả là:
寿拘 (Suzuki)
山田 (Yamada)
松井 (Matsui)
松坂 (Matsuzaka)
藤本 (Fujimoto)
Điều này khác với thứ tự của Nhật Bản syllabary , sẽ sắp xếp danh sách theo ngữ âm (theo cách mà từ điển tiếng Nhật sẽ):
寿拘 (Suzuki)
藤本 (Fujimoto)
松井 (Matsui)
松坂 (Matsuzaka)
山田 (Yamada)
Điều tôi muốn biết là:
- Có một ký tự 2 byte thực sự được so sánh với tính năng sắp xếp khác không?
- Điều gì thực sự diễn ra theo kiểu như vậy?
- (Tín dụng thêm) Kết quả của một loại như vậy có ý nghĩa gì không? Khái niệm phân loại có thực sự hoạt động trong các ngôn ngữ Châu Á (và các ngôn ngữ khác) không? Nếu có, ý nghĩa của nó là gì và nên cố gắng gì để tạo ra một hàm so sánh cho các ngôn ngữ đó?
PHỤ LỤC SƠ KẾT TRẢ LỜI VÀ VẼ KẾT LUẬN:
Thứ nhất, nhờ vào tất cả những ai đã đóng góp vào cuộc thảo luận. Điều này rất thông tin và hữu ích. Đặc biệt shout-outs để bobince, Lie Ryan, Gumbo, Jeffrey Zheng và Larry K, cho sâu và phân tích chu đáo. Tôi đã trao dấu kiểm cho số Larry K để chỉ cho tôi một giải pháp mà câu hỏi của tôi không thể thấy trước, nhưng tôi đã đánh dấu mọi câu trả lời tôi thấy hữu ích.
Sự đồng thuận dường như là:
Trung Quốc và Nhật Bản chuỗi ký tự được sắp xếp theo điểm mã Unicode, và đặt hàng của họ có thể được xác định trên một lý do mà bạn có thể bằng cách nào đó dễ hiểu đối với độc giả am hiểu nhưng không có khả năng có giá trị thực tiễn nhiều trong việc giúp người dùng tìm thấy thông tin họ đang tìm kiếm.
Loại hàm so sánh sẽ được yêu cầu để sắp xếp theo ngữ nghĩa hoặc ngữ âm hữu ích là quá cồng kềnh để xem xét theo đuổi, đặc biệt là vì kết quả có thể ít hơn thỏa đáng và trong mọi trường hợp, các thuật toán so sánh sẽ có được thay đổi cho từng ngôn ngữ. Tốt nhất chỉ để cho phép sắp xếp để tiếp tục mà không cần thử hàm so sánh.
Tôi có thể đã đặt câu hỏi sai ở đây.Đó là, tôi đã suy nghĩ quá nhiều "bên trong hộp" mà không xem xét câu hỏi thực sự không phải là cách tôi phân loại hữu ích bằng các ngôn ngữ này, nhưng làm cách nào để cung cấp cho người dùng một cách hữu ích để tìm kiếm các mục trong danh sách. Người phương Tây tự động nghĩ đến việc phân loại cho mục đích này, và tôi đã phạm tội. Larry K đã chỉ cho tôi một bài viết trên Wikipedia đề xuất chức năng lọc có thể hữu ích hơn cho độc giả Châu Á. Đây là những gì tôi có kế hoạch theo đuổi, vì nó ít nhất là nhanh như phân loại, phía khách hàng. Tôi sẽ giữ cho cột phân loại bởi vì nó được hiểu rõ trong các ngôn ngữ phương Tây, và bởi vì các loa của bất kỳ ngôn ngữ nào sẽ tìm thấy sắp xếp ngày tháng và các kiểu dữ liệu dựa trên số khác hữu ích. Nhưng tôi cũng sẽ thêm cơ chế lọc đó, nó sẽ hữu ích trong các danh sách dài cho bất kỳ ngôn ngữ nào.
+1 Tôi thấy điều này rất thú vị –