พื้นหลัง:
- ฉันมีอักขระยูนิโค้ดบางตัวในพรอมต์ของฉัน (เครื่องหมายสถานะ git เป็นหลัก)
- ฉันใช้ urxvt ภายใต้ xfce บน arch linux
ฉันใช้ DejaVu Sans Mono สำหรับแบบอักษร Powerline ที่ระบุผ่านทาง. Xresources line:
URxvt*font: xft:DejaVu Sans Mono for Powerline:pixelsize=14
เมื่อฉันเริ่ม urxvt อักขระ Unicode ไม่สามารถแสดงได้อย่างถูกต้อง
ตัวอย่างเช่น
●แสดงผลเป็น
อย่างไรก็ตามถ้าฉันเริ่มต้นใหม่urxvt
จากภายใน terminal แรกทุกอย่างแสดงผลอย่างถูกต้อง
ดูเหมือนว่าจะไม่มีความแตกต่างในสภาพแวดล้อมระหว่างสองขั้ว
อะไรคือความแตกต่างระหว่างการเรียกใช้ครั้งแรกกับการเรียกใช้แบบซ้อน ฉันสงสัยว่าแบบอักษรไม่ถูกต้องในอินสแตนซ์ 'outer' แต่ฉันไม่แน่ใจว่าจะตรวจสอบแบบอักษรของหน้าต่าง X ที่กำลังทำงานอยู่ได้อย่างไร
อัปเดต : ดูเหมือนว่าสถานที่ตั้งไม่ถูกต้องในตัวเรียกใช้งานแอปสำหรับ xfce4 แต่น่าจะเป็นเชลล์ภายในเทอร์มินัลแรกที่ระบุว่าเป็นโลแคลของตัวเองซึ่งหมายความว่าเชลล์ทั้งสองมีโลแคลเดียวกัน
เพิ่ม
export LANG=en_GB.UTF-8
เพื่อ. xincex ก่อนที่จะเริ่ม xfce4 ดูเหมือนว่าจะแก้ไข ฉันสงสัยว่านี่ไม่ใช่วิธีที่ถูกต้องแต่ใช้งานได้ดีพอสำหรับฉัน
สกรีนช็อตแสดงให้เห็นถึงปัญหา:
หมายเหตุ: ฉันย้ายคำถามนี้จาก serverfault.com - ฉันหวังว่าไซต์นี้จะเหมาะสมกว่า
LC_ALL=ru_RU.utf8 urxvt
จากเซสชัน X ปัจจุบัน หากตัวอักษรรัสเซีย (และ Unicode อื่น) ตัวอักษรถูกต้องคุณอยู่ในกรณีที่สภาพแวดล้อมของคุณทำงานภายใต้ภาษา C xfce
เพื่อตรวจสอบการตั้งค่าสถานที่สำหรับ ตัวอย่างเช่นถ้าคุณจะเริ่มต้นในการพยายามที่จะสถานชุดก่อนที่ทำงานเหมือน.xinitrc
LANG=ru_RU.utf8 exec startxfce4