Tiếng Việt

Công cụ dành cho nhà phát triển · So sánh văn bản

Việc gấp hộp khó hơn vẻ ngoài của nó: 'Bỏ qua chữ hoa' nghĩa là gì trong Unicode

· Lý lịch

text-diff unicode case-sensitivity

Các phím dòng chữ hoa và chữ thường hội tụ trong khi một dạng đặc biệt vẫn tách biệt
Hình minh họa vector ToolAcre gốc

Giải thích lý do tại sao việc bỏ qua chữ hoa chữ thường là không đáng kể đối với ASCII và tinh tế đối với Unicode, với i không có dấu chấm, chữ s sắc nét và sigma cuối cùng làm ví dụ và điều đó có ý nghĩa gì đối với mọi so sánh không phân biệt chữ hoa chữ thường.

Tại sao hai cách viết của Istanbul có thể không khớp - mở đầu bằng sự không khớp trong thế giới thực liên quan đến thủ đô rải rác I của Thổ Nhĩ Kỳ khiến các nhà phát triển nói tiếng Anh ngạc nhiên

So sánh không phân biệt chữ hoa chữ thường có vẻ phổ biến cho đến khi các mã định danh, tập lệnh và quy tắc ngôn ngữ không đồng ý. Quy tắc thực tế của ToolAcre là cụ thể: khi chọn Bỏ qua chữ hoa chữ thường, mỗi khóa dòng sẽ nhận được JavaScript `toLowerCase()`, sau bất kỳ chuyển đổi khoảng trắng nào. Bình đẳng nghiêm ngặt sau đó so sánh các chuỗi kết quả.

Cơ chế đó hữu ích cho các tiêu đề hoặc nhãn thông thường, nhưng tên của nó không nên được mở rộng thành sự bình đẳng về ngôn ngữ nhận biết địa phương. Giao diện người dùng không thu thập ngôn ngữ và chức năng này không cung cấp. Người đọc nên kiểm tra kết quả bất cứ khi nào trường hợp mang danh tính hoặc ý nghĩa ngôn ngữ.

ASCII trường hợp: một bit duy nhất - giải thích mối quan hệ chữ hoa và chữ thường đơn giản khiến cho việc gắn cờ bỏ qua chữ hoa chữ thường của các công cụ ban đầu trở nên dễ dàng

Sổ làm việc mô tả trường hợp ASCII dưới dạng mối quan hệ một bit nhưng nguồn không triển khai số học bit hoặc nhánh chỉ ASCII. Nó gọi phương thức chuỗi nền tảng trên dòng hoàn chỉnh. Giải thích mã hóa lịch sử yêu cầu các nguồn ngoài kho lưu trữ này.

Đối với văn bản Latinh cơ bản, `Hello` và `hello` trở thành bằng nhau trong tùy chọn, như bộ thử nghiệm đã chứng minh. Thử nghiệm đó thiết lập một hành vi, không phải mọi ánh xạ Unicode. Tránh biến một ví dụ tiếng Anh trôi qua thành một lời hứa về tất cả các chữ viết.

Quá trình triển khai gọi JavaScript tớiLowerCase; nó không hiển thị hoạt động bit cụ thể ASCII

Gấp chữ kiểu Unicode là một khái niệm so sánh với các quy tắc trạng thái và dữ liệu riêng của nó. ToolAcre không gọi thư viện gấp có tên, chuẩn hóa chuỗi hoặc ghi lại phiên bản Unicode. Gọi cách triển khai này là “gấp lại toàn bộ trường hợp” sẽ cho rằng máy móc không có.

Mô tả có thể bảo vệ là so sánh phím chữ thường bằng cách sử dụng công cụ JavaScript hiện tại. Các hàng gốc không thay đổi để hiển thị. Nếu các chuỗi được hạ thấp khác nhau về độ dài hoặc điểm mã, thì dòng đó vẫn là một sự loại bỏ và bổ sung chứ không phải là một sự khớp bắt buộc.

ToolAcre thực hiện ánh xạ chữ thường, không phải thao tác gấp chữ kiểu Unicode được ghi lại

Các tên phác thảo là I của Thổ Nhĩ Kỳ, s sắc nét của Đức và sigma của Hy Lạp. Đó là những chủ đề hợp pháp cho một bài viết Unicode có nguồn gốc bên ngoài, nhưng kho lưu trữ này không chứa bảng hoặc bài kiểm tra nào đảm bảo kết quả cho chúng. Bài viết này cố tình tránh khai báo ánh xạ chính xác.

Kiểm tra các giá trị thực tế trong môi trường đích và tham khảo tài liệu ngôn ngữ và Unicode có thẩm quyền trước khi xây dựng các quy tắc nhận dạng. Hộp kiểm thuận tiện để xem xét trực quan không được trở thành công cụ so sánh tên người dùng, ranh giới bảo mật hoặc công cụ đối chiếu đa ngôn ngữ.

Các ngoại lệ ngôn ngữ được đặt tên yêu cầu các nguồn Unicode bên ngoài và không được đảm bảo ở đây

So sánh `Release Notes` với `release notes`. Chế độ nghiêm ngặt báo cáo sự thay thế; Bỏ qua trường hợp báo dòng giống nhau và hiển thị văn bản gốc bên trái. Thêm dấu câu hoặc thay đổi trọng âm và nhận thấy rằng chỉ viết thường không xóa được mọi khác biệt.

Ví dụ được kiểm soát này thể hiện tùy chọn mà không giả vờ giải quyết hành vi dành riêng cho tập lệnh. Khi xem lại bảng thuật ngữ, trước tiên hãy chạy chế độ nghiêm ngặt và ghi lại các hàng chỉ phân biệt chữ hoa chữ thường. Sau đó, chuyển đổi tùy chọn để tách tiếng ồn viết hoa khỏi các thay đổi về chính tả hoặc dấu câu.

Ví dụ hoạt động: kiểm tra các biến thể tiếng Latinh thông thường mà không cần khái quát hóa cho mọi tập lệnh

Không có bộ chọn ngôn ngữ nào xuất hiện trong giao diện người dùng và `toLowerCase` không nhận được tham số ngôn ngữ. Do đó, mã chuyển đổi giống nhau sẽ chạy bất kể ngôn ngữ dự kiến ​​của tài liệu. Tuyến đường không biết liệu một dòng là tiếng Thổ Nhĩ Kỳ, tiếng Đức, tiếng Hy Lạp hay mã định danh lập trình.

Sự vắng mặt đó là lời cảnh báo thực tế. Để tìm kiếm, sắp xếp hoặc nhận dạng nhận biết ngôn ngữ, hãy sử dụng API được thiết kế xoay quanh các yêu cầu đó và ghim hành vi của nó bằng dữ liệu thích hợp. Khác biệt văn bản là lăng kính của người đánh giá qua hai chuỗi, không phải là chính sách đặt tên chung.

Không có tham số miền địa phương nào được cung cấp bởi tùy chọn so sánh này

Bài viết này không hứa hẹn về tính tương đương, chuẩn hóa, đối chiếu hoặc bảo mật không phải tiếng Latinh đối với các ký tự dễ gây nhầm lẫn. Viết thường không thể trả lời liệu hai tên có đề cập đến cùng một người, sản phẩm hoặc đối tượng hệ thống tệp hay không. Những hệ thống đó có thể áp dụng các quy tắc trường hợp hoàn toàn khác nhau.

Bỏ qua khoảng trắng có thể được kết hợp với chữ hoa chữ thường, nhưng làm như vậy sẽ mở rộng những gì biến mất. Chuyển đổi từng tùy chọn một để xác định nguyên nhân. Một kết quả giống hệt nhau ở cả hai chỉ cho biết các phím dòng được chuyển đổi khớp với nhau; nó không nói gì về đẳng thức byte hoặc ngữ nghĩa.

Bài học rút ra: bỏ qua trường hợp này để thuận tiện chứ không phải để đảm bảo tính chính xác — tóm tắt khi nào tùy chọn trong so sánh Văn bản của ToolAcre là phù hợp và khi nào cần kiểm tra kết quả

Sử dụng trường hợp Bỏ qua để thuận tiện khi viết hoa được biết là gây nhiễu trong cách trình bày. Giữ chế độ nghiêm ngặt cho mã, đường dẫn, tên sản phẩm và bất kỳ miền nào trong đó chữ hoa chữ thường có thể phân biệt các giá trị. Xem lại cả hai kết quả đầu ra thay vì chỉ ghi lại kết quả lỏng lẻo hơn.

Việc triển khai ToolAcre đủ minh bạch để nêu chính xác: xử lý khoảng trắng tùy chọn, sau đó là ánh xạ chữ thường JavaScript, sau đó là sự bình đẳng khóa dòng nghiêm ngặt. Tuyên bố khiêm tốn đó hữu ích hơn lời hứa Unicode mở rộng mà nguồn không thể hỗ trợ.