Android Thay thế Số 18 với nhân vật dấu chấm lửng


306

Vì các công cụ AVD 16 tôi nhận được cảnh báo này:

Replace "..." with ellipsis character (..., …) ?

trong chuỗi của tôi

ở dòng này

 <string name="searching">Searching...</string>

Làm thế nào để tôi thay thế ...? Nó chỉ là nghĩa đen &#8230;?

Ai đó có thể giải thích mã hóa này?


Lưu ý, tôi nhận thấy rằng một số tệp chuỗi dịch riêng của Android sử dụng chính bản thân chứ không phải thực thể Unicode. Do các tệp Android XML thường được mã hóa bằng UTF-8, tôi thấy không có lý do gì để không sử dụng chính ký tự đó hơn là thực thể Unicode bí mật, đặc biệt là hầu hết các chương trình xử lý văn bản hiện nay đều hỗ trợ tự động "..." '"(Microsoft Word thực hiện theo mặc định, tôi đã kiểm tra lần cuối).
JAB

Có thực sự là ba dấu chấm (ASCII 46 / 0x26)? Hoặc ASCII 133 (một ký tự)?
Peter Mortensen

1
Khi trả lời một câu hỏi SO khác, có một lời giải thích tốt hơn là 'Thay đổi ... thành Unicode vì nó tốt hơn'. stackoverflow.com/a/27984145/973919 Nói tóm lại, nó ngăn cản ba chấm không bị chia rẽ trên một dòng văn bản đa (cho thấy 1 hoặc 2 chấm một mình) và trong một số typographies nó trông xấu để thấy 3 chấm.
xarlymg89

Câu trả lời:


538

&#8230;là unicode cho " ... " vì vậy chỉ cần thay thế nó. Nó là tốt hơn để có nó như là một char / biểu tượng hơn ba dấu chấm.


41
Tại sao nó "tốt hơn"? Điều này làm phức tạp mọi thứ khi đưa văn bản cho người dịch. Chúng ta có thể bằng cách nào đó giết chết cảnh báo ngu ngốc này? Cảm ơn
swinefeaster

25
@swinefeaster tốt để biết :) nhưng vì họ phải trả tiền, họ cũng có thể dạy được :)
WarrenFaith

25
@swinefeaster Nó "tốt hơn" một phần vì nó không bị hỏng ("..." có thể bao quanh ví dụ như giai đoạn thứ hai) và về mặt lý thuyết, các ngôn ngữ có thể khiến chúng khác đi (nhiều ngôn ngữ châu Á đặt chúng ở giữa và chúng rộng hơn (khớp với chiều rộng ký tự)). Không phá vỡ là hữu ích ở mọi nơi, mặc dù tôi không biết Android kết xuất chúng chính xác trong các lang khác, tôi cũng không biết các ký tự UTF cho mục đích này.
Groxx

12
Có "..." gây ra các vấn đề về khả năng truy cập. Android Talkback đọc "Đang tải ..." là "Đang tải 3 kỳ"
Mohammad Shabaz Moosa

14
Có vẻ như bình luận của tôi không rõ ràng. Sử dụng "đang tải ..." (3 chấm) dẫn đến Talkback để nói "tải 3 kỳ" bằng cách sử dụng "Đang tải & # 8230;" (dấu chấm lửng) dẫn Talkback nói "Đang tải" [Điều này tốt ..] Vì vậy, chúng ta nên sử dụng dấu chấm lửng luôn
Mohammad Shabaz Moosa

15

Để làm cho mọi thứ ngắn gọn chỉ cần đặt &#x2026;vào vị trí ...

Liên kết đến danh sách các thực thể ký tự XML

  • Nhìn vào cột Unicode của HTML cho hàng có tên hellip

5
Ban đầu tôi tự hỏi tại sao bạn lại sử dụng &#x2026;khi cảnh báo Eclipse nói sẽ sử dụng &#8230;nhưng liên kết của bạn trả lời được điều đó. Cụ thể là x biểu thị một giá trị hex và 8230 ở dạng thập phân là 2026 theo hex.
k2col

nơi để đặt & # x2026 bất kỳ vị trí nào cho việc này.
Tushar Pandey

@ TusharPandey- nếu mã của bạn là <string name = "search"> Tìm kiếm ... </ string> thì nó sẽ trông giống như <string name = "search"> Tìm kiếm & # x2026 </ string>
Jadeye

13

Nếu bạn đang sử dụng Eclipse thì bạn luôn có thể làm như sau:

  • Nhấp chuột phải vào cảnh báo
  • Chọn "Khắc phục nhanh" (phím tắt là Ctrl+ 1theo mặc định)
  • Chọn "Thay thế bằng các ký tự được đề xuất"

Điều này sẽ thay thế ba dấu chấm của bạn bằng ký tự Unicode thích hợp cho dấu chấm lửng.

Xin lưu ý: Phiên bản mới nhất của ADT (21.1) đôi khi sẽ không thực hiện thao tác thay thế đúng cách, nhưng các phiên bản trước đó không gặp vấn đề gì khi thực hiện việc này.

Đây là nhân vật:


Điều này làm việc cho tôi! Tuy nhiên, không có gì "trực quan" xảy ra ngoài cảnh báo biến mất và tôi đang chạy ADT 22.2.1. Nhưng tôi đoán đó là cách nó hoạt động :)
ymerdrengene

Không làm việc cho tôi. Nhật thực đã khiến tôi (tôi không biết tại sao) phải bỏ qua thẻ <resource> bằng thẻ <Element> mới.
Leonardo Raele

Đôi khi, Eclipse sẽ làm điều đó nếu bạn không làm nổi bật chính xác khu vực phù hợp. Tôi thấy mình nổi bật và cố gắng khắc phục nhanh hai hoặc ba lần trước khi nó thực sự đưa ra gợi ý đúng.
Michael Celey

10

Giải pháp cho vấn đề của bạn là:

Go to Window -> Preferences -> Android -> Lint Error Checking

Và tìm kiếm " dấu chấm lửng ". Thay đổi mức cảnh báo thành " Thông tin " hoặc " Bỏ qua ".


8
Những đề nghị đó có ý nghĩa. Đơn giản chỉ cần bỏ qua chúng chỉ là một giải pháp, nếu bạn thực sự chắc chắn, những gì bạn đang làm. Trong trường hợp này, sự thay thế có ý nghĩa, vì vậy bỏ qua cảnh báo là không tốt.
Alexander Pacha

Cảm ơn! Chỉ cần những gì tôi đang tìm kiếm. Và đó là nơi để làm tất cả các việc liên quan (tôi không cần máy tính để cho tôi biết cách đánh vần, viết hoa hoặc chấm câu). Rất hữu ích!
Scott Biggie

3
đây không phải là một lựa chọn tốt để bỏ qua các cảnh báo. bạn nên sửa các cảnh báo để có kết quả tốt hơn.
Deepak

1
@ScottBiggs để công bằng, nếu máy tính nói với bạn rằng bạn đã đánh vần, viết hoa hoặc chấm câu một cái gì đó không chính xác, thì bạn nên sửa nó. Gợi ý là hữu ích trong vấn đề đó, tôi khuyên không nên vô hiệu hóa chúng.
EpicPandaForce

3

Câu trả lời này liên quan gián tiếp đến câu hỏi này:

Trong trường hợp của tôi textView1.setTextView("done&#8230");đã hiển thị một số hộp / ký tự Trung Quốc. Sau đó, tôi đã kiểm tra fileformat.infoxem giá trị đại diện cho cái gì và tôi thấy đây là một nhân vật Han. Vậy lam gi? Tôi đã tìm kiếm "tập tin hình elip fileformat.info" và sau đó mọi thứ trở nên rõ ràng với tôi khi tôi thấy các giá trị của nó là;

UTF-16 (hex) 0x2026 (2026)

UTF-16 (decimal) 8,230

Vì vậy, bạn có sẵn một số mã hóa để thể hiện một ký tự (ví dụ 10 trong Decimal được biểu thị là A trong hexa), vì vậy điều rất quan trọng là bạn phải biết khi nào bạn viết một ký tự unicode, cách chức năng nhận giải mã nó. Nếu nó giải mã dưới dạng giá trị thập phân thì bạn phải cung cấp giá trị thập phân, nếu nó chấp nhận thập lục phân thì bạn phải cung cấp thập lục phân.

Trong trường hợp của tôi, hàm setTextView () chấp nhận giá trị được mã hóa thập phân nhưng tôi đã cung cấp các giá trị thập lục phân nên tôi đã nhận được ký tự sai.



0

Tốt nhất đừng bỏ qua nó theo đề nghị của một số người, nó dường như với tôi. Sử dụng Android Studio để sửa lỗi (thay vì thực sự nhập mã ký tự) và công cụ sẽ thay thế ba dấu chấm bằng ký tự unicode ba chấm . Đừng nhầm lẫn với người dịch, v.v.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.