หน้าจอ GNU ไม่ได้สะท้อนเสียงอักษรที่ถูกต้อง


14

เมื่อฉันทำเช่นนี้ใน terminal ของฉัน:

echo -e "\xF0\x9f\x8d\xba"

ฉันได้รับเหยือกเบียร์เย็น ๆ ในเครื่อง::

อย่างไรก็ตามเมื่อฉันเริ่มหน้าจอและลองแบบเดียวกันฉันจะได้ a ฉันจะได้รับเหยือกเบียร์ที่ดีได้อย่างไร

นี่คือ. screenrc ของฉัน:

nethack on
startup_message off
defscrollback 3000
hardstatus on
hardstatus alwayslastline
hardstatus string "%{.bW}%-w%{.rW}%n %t%{-}%+w %=%{..G} %H %{..Y} %m/%d %c"
termcapinfo xterm 'bc@:bs@'
ignorecase on
maptimeout 0
vbell off
defutf8 on
defencoding utf8

การรันหน้าจอด้วย-Uตัวเลือกก็ไม่ได้ช่วยอะไร


คือ U + FFFD, อักขระการแทนที่ Unicode ซึ่งหมายความว่าคอมพิวเตอร์ของคุณไม่รู้จักอักขระที่ไบต์พยายามนำเสนอ คุณเปลี่ยนจากเทอร์มินัลทางกายภาพของคุณเป็นเทอร์มินัลอีมูเลเตอร์ในระหว่างการทดสอบเหล่านี้โดยบังเอิญหรือไม่?
Andrew B

เมื่อฉันทำในเทอร์มินัลโดยไม่มีหน้าจอเริ่มต้นมันจะทำงานเมื่อฉันเริ่มหน้าจอและทำเช่นเดียวกันมันจะไม่ทำงาน มันอยู่บนเครื่องเดียวกันและในเครื่องเดียวกัน ฉันใช้โปรแกรมจำลองเทอร์มินัลตลอดเวลา
gitaarik

คุณใช้เทอร์มินัลอีมูเลเตอร์ใด?
dawud

คำตอบ:


20

เห็นได้ชัดว่าเป็นข้อบกพร่องที่รู้จัก : ไม่มีอักขระใดนอกเหนือจากBMPที่แสดงเนื่องจากหน้าจอเห็นได้ว่ามีบัฟเฟอร์ไบต์สองตัวเท่านั้นสำหรับอักขระ

(มันทำงานใน tmux)


นั่นเป็นคนเกียจคร้าน .. พยายาม tmux ในอดีต แต่มันก็ล้มเหลวมาก บางทีฉันอาจจะให้มันลองในบางจุดอื่น ...
gitaarik

Btw update: ฉันใช้ tmux มานานแล้วและชอบมาก แทบไม่เคยหยุดทำงานและมีการกำหนดค่าและปลั๊กอินที่ยอดเยี่ยม ใช้เวลาในการกำหนดค่าเพื่อให้มันดีในการทำงาน แต่ก็คุ้มค่ากับความพยายามอย่างแน่นอน :)
gitaarik

6
อัปเดต: ข้อผิดพลาดได้รับการแก้ไขตั้งแต่ v4.2.0! sudo apt install screen=4.2.1-2~ubuntu14.04.1ทำงานให้ฉัน
Adam Monsen

เป็นที่น่าสังเกตว่า unicode chars ไม่ทำงานใน hardstatus ของหน้าจอ GNU แม้แต่ในเวอร์ชั่น4.6.2-1ubuntu1บน Lubuntu Bionic Beaver (18.04)
zrajm
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.