Android แทนที่“ …” ด้วยอักขระจุดไข่ปลา


306

ตั้งแต่เครื่องมือ AVD 16 ฉันได้รับคำเตือนนี้:

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

ใน strings.xml ของฉัน

ที่บรรทัดนี้

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

ฉันจะแทนที่ได้...อย่างไร มันเป็นเพียงแค่ตัวอักษร&#8230;?

มีคนอธิบายการเข้ารหัสนี้ได้ไหม


ตามบันทึกแล้วฉันสังเกตเห็นว่าไฟล์สตริงที่แปลแล้วของ Android บางตัวใช้ ... ตัวเองแทนที่จะเป็นเอนทิตี Unicode เนื่องจากปกติแล้วไฟล์ Android XML จะถูกเข้ารหัสใน UTF-8 อย่างไรก็ตามฉันไม่เห็นเหตุผลที่จะไม่ใช้ตัวอักษรแทนเอนทิตี Unicode ที่อาจเกิดขึ้นโดยเฉพาะอย่างยิ่งโปรแกรมประมวลผลคำส่วนใหญ่ในปัจจุบันสนับสนุนการแก้ไขอัตโนมัติ "... " เป็น " … "(Microsoft Word ทำตามค่าเริ่มต้นตรวจสอบล่าสุด)
JAB

อันที่จริงมันเป็นสามจุด (ASCII 46 / 0x26)? หรือ ASCII 133 (ตัวละครหนึ่งตัว)?
Peter Mortensen

1
ที่คำตอบของคำถาม SO อื่นมีคำอธิบายที่ดีกว่า 'เปลี่ยน ... เป็น Unicode เพราะดีกว่า' stackoverflow.com/a/27984145/973919ในระยะสั้นมันป้องกันไม่ให้จุดสามจุดถูกแยกบนข้อความหลายบรรทัด (แสดงจุด 1 หรือ 2 จุดเดียว) และในบาง typographies มันดูไม่ดีที่จะเห็น 3 จุด
xarlymg89

คำตอบ:


538

&#8230;เป็น Unicode สำหรับ " ... " ดังนั้นเพียงแค่แทนที่มัน มันจะดีกว่าถ้ามีมันเป็นสัญลักษณ์หนึ่งตัว / สามจุด


41
ทำไม "ดีกว่า"? สิ่งนี้จะทำให้สิ่งต่าง ๆ ซับซ้อนเมื่อให้ข้อความแก่นักแปล เราสามารถฆ่าคำเตือนที่โง่นี้ได้หรือไม่? ขอบคุณ
swinefeaster

25
@swinefeaster น่ารู้ :) แต่เนื่องจากพวกเขาสามารถชำระได้พวกเขาก็สามารถสอนได้เช่นกัน :)
WarrenFaith

25
@ Swinefeaster มันเป็น "ดีกว่า" ส่วนหนึ่งเพราะมันไม่แตก ("... " อาจห่อรอบเช่นช่วงที่สอง) และในทางทฤษฎีภาษาสามารถทำให้พวกเขาแตกต่างกัน (ภาษาเอเชียจำนวนมากวางไว้ตรงกลางและพวกเขากำลัง กว้างขึ้น (ตรงกับความกว้างของอักขระ)) การไม่ทำลายมีประโยชน์ทุกที่ฉันไม่ทราบว่า Android จะแสดงผลอย่างถูกต้องในภาษาอื่นหรือไม่และฉันไม่รู้จักอักขระ UTF สำหรับจุดประสงค์นี้
Groxx

12
การมี "... " ทำให้เกิดปัญหาการเข้าถึง Android Talkback อ่าน "กำลังโหลด ... " ในขณะที่ "กำลังโหลด 3 ช่วงเวลา"
Mohammad Shabaz Moosa

14
ดูเหมือนว่าความคิดเห็นของฉันไม่ชัดเจน การใช้ "กำลังโหลด ... " (3 จุด) นำไปสู่ ​​Talkback เพื่อพูดว่า "โหลด 3 ช่วงเวลา" การใช้ "กำลังโหลด & # 8230;" (จุดไข่ปลา) นำ Talkback มาพูดว่า "กำลังโหลด" [ไหนดี .. ] ดังนั้นเราควรใช้จุดไข่ปลาเสมอ
Mohammad Shabaz Moosa

15

เพื่อให้เรื่องสั้น&#x2026;เข้าที่ ...

ลิงก์ไปยังรายการเอนทิตีอักขระ XML

  • ดูที่คอลัมน์ Unicode ของ HTML สำหรับแถวชื่อ hellip

5
ตอนแรกฉันสงสัยว่าทำไมคุณถึงใช้&#x2026;เมื่อคำเตือน Eclipse บอกว่าจะใช้&#8230;แต่ลิงก์ของคุณตอบคำถามนั้น คือ x หมายถึงค่า hex และ 8230 ในทศนิยมคือ 2026 ใน hex
k2col

จะวางตำแหน่งนี้ไว้ที่ไหน & # x2026
Tushar Pandey

@ TusharPandey- หากรหัสของคุณคือ <string name = "ค้นหา"> กำลังค้นหา ... </string> จากนั้นจะมีลักษณะเช่น <string name = "ค้นหา"> กำลังค้นหา & # x2026 </string>
Jadeye

13

หากคุณใช้ Eclipse คุณสามารถทำสิ่งต่อไปนี้ได้เสมอ:

  • คลิกขวาที่คำเตือน
  • เลือก "แก้ไขด่วน" (ทางลัดคือCtrl+ 1ตามค่าเริ่มต้น)
  • เลือก "แทนที่ด้วยอักขระที่แนะนำ"

สิ่งนี้ควรแทนที่จุดสามจุดของคุณด้วยอักขระ Unicode ที่เหมาะสมสำหรับจุดไข่ปลา

ข้อควรทราบ: บางครั้ง ADT รุ่นล่าสุด (21.1) จะไม่ทำการแทนที่อย่างถูกต้อง แต่รุ่นก่อนหน้านี้ไม่มีปัญหาในการทำเช่นนี้

นี่คือตัวละคร:


สิ่งนี้ได้ผลสำหรับฉัน! อย่างไรก็ตามไม่มี "ภาพ" เกิดขึ้นนอกเหนือจากคำเตือนที่หายไปและฉันใช้ ADT 22.2.1 แต่ผมคิดว่า thats วิธีการทำงาน :)
ymerdrengene

ไม่ได้ผลสำหรับฉัน Eclipse ติดขัดฉัน (ฉันไม่ทราบสาเหตุ) ที่จะทำให้แท็ก <resources> ทับหน้าด้วยแท็ก <element> ใหม่
Leonardo Raele

Eclipse จะทำเช่นนั้นในบางครั้งหากคุณไม่เน้นบริเวณที่ถูกต้อง ฉันพบว่าตัวเองกำลังเน้นและพยายามแก้ไขอย่างรวดเร็วสองหรือสามครั้งก่อนที่มันจะทำให้คำแนะนำที่ถูกต้อง
Michael Celey

10

ทางออกสำหรับปัญหาของคุณคือ:

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

และค้นหา " จุดไข่ปลา " เปลี่ยนระดับคำเตือนเป็น " ข้อมูล " หรือ " ละเว้น "


8
คำแนะนำเหล่านั้นสมเหตุสมผล การเพิกเฉยต่อสิ่งเหล่านี้เป็นเพียงวิธีแก้ปัญหาหากคุณแน่ใจจริงๆว่าคุณกำลังทำอะไรอยู่ ในกรณีนี้การเปลี่ยนทำได้อย่างเหมาะสมดังนั้นการเพิกเฉยต่อคำเตือนจึงไม่ดี
Alexander Pacha

ขอบคุณ! สิ่งที่ฉันกำลังมองหา และนั่นคือสถานที่ที่จะทำสิ่งต่าง ๆ ที่เกี่ยวข้อง (ฉันไม่ต้องการคอมพิวเตอร์เพื่อบอกวิธีสะกดใช้ประโยชน์หรือเว้นวรรค) มีประโยชน์มาก!
Scott Biggs

3
นี่ไม่ใช่ตัวเลือกที่ดีในการเพิกเฉยต่อคำเตือน คุณควรแก้ไขคำเตือนเพื่อผลลัพธ์ที่ดีขึ้น
Deepak

1
@ScottBiggs มีความเป็นธรรมหากคอมพิวเตอร์บอกคุณว่าคุณสะกดถูกพิมพ์ใหญ่หรือเว้นวรรคอย่างไม่ถูกต้องคุณควรแก้ไข ผ้าสำลีมีประโยชน์ในเรื่องนั้นฉันแนะนำให้ปิดการใช้งาน
EpicPandaForce

3

คำตอบนี้เกี่ยวข้องกับคำถามนี้ทางอ้อม:

ในกรณีของฉันtextView1.setTextView("done&#8230");ก็แสดงตัวอักษรจีน / กล่อง ต่อมาฉันเช็คอินfileformat.infoเพื่อดูว่าค่าหมายถึงอะไรและฉันก็พบว่านี่เป็นตัวอักษรฮัน แล้วจะทำอย่างไรดี? ฉันค้นหา "fileformat.info ellipse character" แล้วทุกอย่างก็ชัดเจนสำหรับฉันเมื่อฉันเห็นค่าของมันคือ;

UTF-16 (hex) 0x2026 (2026)

UTF-16 (decimal) 8,230

ดังนั้นคุณมีการเข้ารหัสหลายอย่างเพื่อแสดงอักขระ (เช่น 10 ในทศนิยมจะแสดงเป็น A ใน hexa) ดังนั้นจึงเป็นสิ่งสำคัญที่ต้องรู้เมื่อคุณกำลังเขียนอักขระ unicode วิธีรับฟังก์ชันถอดรหัส หากถอดรหัสเป็นค่าทศนิยมคุณต้องระบุค่าทศนิยมถ้ายอมรับเลขฐานสิบหกคุณต้องระบุเลขฐานสิบหก

ในกรณีของฉันฟังก์ชั่น setTextView () ยอมรับค่าการเข้ารหัสทศนิยม แต่ฉันให้ค่าเลขฐานสิบหกดังนั้นฉันจึงได้รับตัวละครที่ไม่ถูกต้อง



0

ดีที่สุดที่จะไม่เพิกเฉยตามคำแนะนำของบางคน ใช้ Android สตูดิโอที่จะแก้ไขให้ถูกต้อง (มากกว่าจริงพิมพ์ในรหัสตัวอักษร) และเครื่องมือที่จะเข้ามาแทนที่จุดสามจุดกับ Unicode สามจุดตัวอักษร จะไม่สับสนกับนักแปล ฯลฯ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.