เหตุใด Chrome บน Windows 7 จึงไม่แสดงอักขระ Unicode บางตัวให้ฉัน


21

นี้คำถามที่แอปเปิ้ลมีข้อความ

กุญแจนี้คืออะไร? ⎋

รูปแบบใดที่ฉันชอบใน Google Chrome

ป้อนคำอธิบายรูปภาพที่นี่

เหตุใดอักขระ Unicode หรือคนอื่น ๆ ที่ไม่สามารถเล่นได้ใน Google Chrome บน Windows 7


มันดูเหมือนกล่องสำหรับฉัน ... ไม่ว่าในกรณีใดการโพสต์สองครั้งจะขมวดคิ้ว
soandos

3
@soandos คุณพูดถึงโพสต์อะไรอีก นอกจากนี้มันไม่ควรจะเป็นกล่อง นั่นเป็นเหตุผลที่ฉันถามคำถาม ใครบางคนถามคำถามเกี่ยวกับ askdifferent และพิมพ์อักขระ unicode ที่นั่น แต่ในการติดตั้ง Chrome ฉันเห็นกล่องทั่วไป
Michael Pryor

3
ตามที่ฉัน ... ดูเหมือนว่าจะไม่มีปัญหากับการติดตั้ง chrome ของคุณ แต่เป็นสำหรับ Chromes ทั้งหมด FF รับรู้ได้ดี Chrome ไม่สามารถจำได้ว่ามันเป็นตัวอักษร Unicode (ฉันไม่คิดว่า)
soandos

น่าสนใจ Chromium บน Ubuntu ทำได้ดี
Kibbee

@soandos ทำงานได้ดีสำหรับฉันด้วย Google Chrome (12.0.742.112) บน Ubuntu 11.04 (Natty)
Mike Spross

คำตอบ:


20

ฉันสมมติว่ามันเป็นปัญหาการทดแทนแบบอักษร

เบราว์เซอร์พบปัญหา "สัญลักษณ์ที่เลือกไม่ได้อยู่ในแบบอักษรที่ระบุ" มีสองทิศทางที่คุณสามารถไปได้จากที่นี่: คุณสามารถดึง glyph ที่เทียบเท่าออกมาจากแบบอักษรอื่น (ซึ่งมักจะดูแตก แต่อาจไม่ชัดเจนว่าทำไมกับผู้ใช้) หรือเพียงแค่แสดงตัวยึดตำแหน่งที่ไม่พบอักขระ (ซึ่ง จะดูแตกเสมอ แต่อย่างน้อยก็เห็นได้ชัด)

ฉันจินตนาการว่า Firefox และ Opera รับรู้ว่าสัญลักษณ์ที่ร้องขอนั้นเป็นสัญลักษณ์ที่ปลอดภัยในการดึงจากแบบอักษรอื่นในขณะที่เบราว์เซอร์ที่เหลืออยู่นั้นมีความอนุรักษ์นิยมและเพิ่งแสดงสัญลักษณ์ "Uh ... dunno"


ฉันเชื่อว่าทั้ง Chrome และ Safari ใช้ Windows GDI สำหรับการแสดงผลข้อความบน Windows IE9 ใช้ DirectWrite ซึ่งดูเหมือนจะมีพฤติกรรมเหมือนกับ GDI ในกรณีนี้
Craig Williams

สิ่งที่น่าสนใจ: คุณจะได้รับผลลัพธ์เดียวกันหากคุณวางลงในแถบที่อยู่
xpda

@xpda คุณพูดถูก อักขระนั้นใช้งานได้ในแถบที่อยู่และเนื้อหาบน Firefox และไม่สามารถทำงานในที่ใดก็ได้ใน Chrome มโนหร
Jeff Atwood

5
ฟังเกี่ยวกับสิทธิ์: ทั้ง Chrome และ Firefox ใช้Uniscribeเพื่อแสดงข้อความในเบราว์เซอร์และ Uniscribe จะส่งคืนรหัสข้อผิดพลาดไปยังแอปพลิเคชันที่โทรหาเมื่อไม่พบอักขระบางตัวในแบบอักษรปัจจุบัน มันขึ้นอยู่กับแอพพลิเคชั่นที่จะตัดสินใจว่า Uniscribe ควรใช้ฟอนต์ fallback เพื่อค้นหาการทดแทนหรือไม่ Chrome เป็นหนึ่งในเบราว์เซอร์ที่เพิ่งพูดว่า "ไม่ว่าอะไรก็ตามฉันไม่สนกล่องใช้ได้"
Mike Spross

11

น่าสนใจ ไม่ใช่แค่ Chrome - คุณอาจถามว่าทำไมเบราว์เซอร์ใด ๆต่อไปนี้ไม่สามารถแสดงบน Windows 7:

ป้อนคำอธิบายรูปภาพที่นี่

จากบนลงล่าง:

  • Firefox (y)
  • IE9 (n)
  • Chrome (n)
  • โอเปร่า (y)
  • ซาฟารี (n)

ดังนั้น Firefox และ Opera สามารถแสดงอักขระยูนิโค้ดนี้ใน Windows 7 แต่เบราว์เซอร์อื่นไม่สามารถทำได้

กุญแจนี้คืออะไร? ⎋


สำหรับสิ่งที่มีค่าคีย์นั้นคือ "ESC" ใน Mac OS X
Martin Marconcini

@jjn เป็นคำตอบบางส่วนซึ่งได้รับอนุญาตโดยทั่วไป
Jeff Atwood

ข้อสังเกต. (ความคิดเห็นถอนออก)
jjnguy

ทุกวันนี้เบราว์เซอร์มีความเหมือนกัน ... :)
balexandre

2
Chrome 13.0.782.107/Linux: ok
Arnaud Le Blanc

6

คำถามที่ถามว่า "เพราะเหตุใดอักขระ Unicode จึงไม่สามารถแสดง [... ] ใน Google Chrome บน Windows 7" คือ

ตัวละครนั้นเป็นเพียง codepoint ของ Unicode ซึ่งเป็นตัวเลขโดยพลการ มีจำนวน codepoints Unicode จำนวนมากที่ไม่มีสัญลักษณ์ 'เป็นทางการ' แม้ว่าพวกเขาจะมีสัญลักษณ์ก็ไม่จำเป็นต้องเป็นกรณีที่ตัวอักษรของคุณมีสัญลักษณ์สำหรับ codepoint นั้น หากคุณเลือกแบบอักษรอื่นคุณอาจท้ายด้วยสัญลักษณ์อื่น

ฉันดู CSS สำหรับหน้าและมันแสดงให้เห็นว่าตัวละครนี้แสดงใน Arial (รวมถึงฟอนต์อื่น ๆ ที่ไม่สำคัญ) Windows มาพร้อมกับ Arial ดังนั้นควรเลือกแบบอักษรนั้นก่อนเสมอ ดูเหมือนว่า Arial จะไม่มีสัญลักษณ์สำหรับ codepoint ของ Unicode ทุกครั้งที่คุณไม่มี glyph สำหรับ codepoint มันวางในรูปแบบของกล่องที่ระบุว่าไม่มี glyph (ตามที่คนอื่น ๆ ระบุไว้)

คำถามที่ใหญ่กว่าคือ Firefox คืออะไรหรือเบราว์เซอร์อื่นที่ทำงานบน Windows ฉันดูแบบอักษรอื่น ๆ ที่ระบุไว้ใน CSS (ฉันคิดว่ามันอาจจะล้มลงในแบบอักษร CSS ถัดไป) แต่พวกเขายังไม่มี glyph สำหรับ codepoint นั้น ความเป็นไปได้อย่างหนึ่งคือ Firefox จริงมาพร้อมกับแบบอักษร

เมื่อขุดลงใน firefox ฉันสังเกตเห็นแบบอักษรบางอย่างสำหรับสัญลักษณ์ทางคณิตศาสตร์ที่นี่: 'C: \ Program Files (x86) \ Mozilla Firefox \ res \ fonts' บางทีนี่อาจเป็นที่มาของมัน


3

ฉันรู้ว่านี่เป็นคำถามเก่า ๆ แต่สำหรับผู้ที่เพิ่งเริ่มต้นกับ Google ฉันมีวิธีแก้ปัญหาที่ทำงานได้ในปี 2013 ก่อนอื่นคุณต้องยืนยันว่าคุณมีแบบอักษรที่ติดตั้งในพีซี Windows 7 ที่สามารถแสดงผลได้ ตัวอักษร:

http://www.fileformat.info/info/unicode/char/238b/index.htm

สมมติว่าอย่างน้อยหนึ่งตัวอักษรในรายการแบบอักษรท้องถิ่นทำให้สิ่งนี้:

http://www.fileformat.info/info/unicode/font/fontlist.htm?text=%E2%8E%8B+-+Unicode+Character+%27BROKEN+CIRCLE+WITH+NORTHWEST+ARROW%27+%28U%2B238B 29%

หากไม่มีให้ติดตั้งฟอนต์ Unicode "catch all" สองสามตัว: Code2000และSymbola

เมื่อคุณมีแบบอักษรที่จะแสดงสัญลักษณ์คุณสามารถลองหน้าทดสอบเบราว์เซอร์:

http://www.fileformat.info/info/unicode/char/238b/browsertest.htm

Chrome 28.0.1500.95 (และอาจเป็นรุ่นล่าสุดทั้งหมด) ทำการทดแทนแบบอักษร ... ส่วนใหญ่

ไม่ว่าด้วยเหตุผลใดก็ตามถึงแม้จะมีแบบอักษรที่ทำให้U + 1F3C1ติดตั้งอย่างถูกต้อง Chrome 28.0 จะไม่แสดงอักขระ Unicode นี้: 🏁 Firefox ทำงานได้อย่างสวยงาม ไปคิด

  • เดฟ

การแทนที่แบบอักษรด้านบน BMP ยังคงใช้งานได้ใน Chrome สำหรับ Windows เท่านั้น : code.google.com/p/chromium/issues/detail?id=111382
Fizz

2

ตามขั้นต่ำที่แน่นอนผู้พัฒนาซอฟต์แวร์ทุกรายต้องรู้อย่างแน่นอนเกี่ยวกับ Unicode และชุดอักขระ (ไม่มีข้อแก้ตัว!) โดย Joel Spolsky "ถ้าไม่มีจุดเทียบเท่า Unicode code ที่คุณกำลังพยายามนำเสนอในการเข้ารหัสที่คุณกำลังพยายาม หากต้องการแสดงมันคุณมักจะได้รับเครื่องหมายคำถามเล็ก ๆ น้อย ๆ : หรือถ้าคุณเป็นกล่องจริงๆ

ฉันกำลังใช้งาน Chromium 13.0.782.112 บน Archlinux และการเข้ารหัสเริ่มต้นของฉันคือ en_US.UTF-8 - charcter แสดงผลได้ดีบนหน้าเชื่อมโยงเริ่มแรก


2
ไม่เป็นไร แต่ฉันไม่คิดว่าคำถามนั้นเกี่ยวกับกล่อง แต่ทำไมเบราว์เซอร์บางตัวสามารถแสดงอักขระนี้โดยเฉพาะและอื่น ๆ ไม่สามารถทำได้
Jeff Atwood

@Jeff Atwood เห็นด้วย - ถ้ามีอะไรคำตอบของฉันให้หลักฐานสนับสนุนเพิ่มเติมเกี่ยวกับปัญหาการพิมพ์; อ่านได้ที่นี่ ฉันไม่สามารถบอกคุณถึงแบบอักษรเริ่มต้นได้เนื่องจากฉันไม่ได้อยู่หน้าเครื่องของฉัน
wulfgarpro

0

คำตอบที่แท้จริง:เป็นเพราะมีข้อผิดพลาดใน Chrome ที่ borks Windows 7 (และสูงกว่า?) แสดงผลแบบอักษร unicode

ปัญหาอยู่ที่นี่พร้อมรายละเอียดเลือดทั้งหมด: https://crbug.com/42984 (ติดดาวแล้วและบางคนอาจสังเกตเห็นมัน)

การวิเคราะห์มากขึ้นและวิธีแก้ปัญหาที่เป็นไปได้สามารถพบได้ที่นี่: http://gschoppe.com/uncategorized/fixing-unicode-support-in-google-chrome/


0

Firefox 45.0 ใน GNU / Linux LFS 7.9 ของฉันไม่แสดง Unicode glyph ที่กล่าวถึงในคำถาม แต่ก็ไม่ได้แสดง glyphs อื่น ๆ เช่นกรีกเป็นต้น

อย่างไรก็ตามหลังจากดาวน์โหลดSymbolaแบบอักษรจากที่นี่แล้ว:

~$ unzip Downloads/symbola.zip -d Downloads
~$ mv Downloads/Symbola/Symbola_hint.ttf .fonts
~$ fc-cache

Firefox จะแสดง glyph ที่เป็นปัญหาและแสดง glyph อื่น ๆ

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