ไม่สามารถพิมพ์อักขระพิเศษหรือเครื่องหมายบนหน้าจอในเทอร์มินัล


13

สภาพแวดล้อม:
ฉันใช้ Ubuntu 11.10 กับ wmii 3.9 เป็น GUI และ uxterm เป็นเทอร์มินัลที่มี bash เป็นเชลล์ ฮาร์ดแวร์เป็น Lenovo ThinkPad W500 ที่มีรูปแบบแป้นพิมพ์ Swissgerman (ดังนั้นฉันจึงต้องใช้ umlauts) ฉันกำลังใช้ ibus สำหรับอินพุตภาษาญี่ปุ่น

Symthoms:
เมื่อฉันพิมพ์ / คีย์ตัวอักษรชอบ~, ^ใน terminal ไม่มีอะไรเกิดขึ้น หากฉันกดö' (arg: 6)' จะปรากฏขึ้นโดยäไม่มีอะไรเกิดขึ้นกับüบางครั้งคำสั่งจากประวัติจะปรากฏขึ้น
มันเป็นพฤติกรรมเดียวกันในเทอร์มินัลทั้งหมดที่ฉันทดสอบจนถึงตอนนี้ (gnome-terminal, xfce4-terminal, xterm) มันทำงานได้ตามที่ต้องการในแอปพลิเคชั่น X อื่น ๆ เช่นโครเมียมเบราว์เซอร์ skype หรือ texteditors

ข้อมูลเพิ่มเติม:

> locale
LANG=de_CH.UTF-8
LANGUAGE=en_US:en
LC_CTYPE=en_US.UTF-8
LC_NUMERIC="de_CH.UTF-8"
LC_TIME="de_CH.UTF-8"
LC_COLLATE=en_US.UTF-8
LC_MONETARY="de_CH.UTF-8"
LC_MESSAGES=en_US.UTF-8
LC_PAPER="de_CH.UTF-8"
LC_NAME="de_CH.UTF-8"
LC_ADDRESS="de_CH.UTF-8"
LC_TELEPHONE="de_CH.UTF-8"
LC_MEASUREMENT="de_CH.UTF-8"
LC_IDENTIFICATION="de_CH.UTF-8"
LC_ALL=

> setxkbmap -print
xkb_keymap {
        xkb_keycodes  { include "evdev+aliases(qwerty)" };
        xkb_types     { include "complete"      };
        xkb_compat    { include "complete"      };
        xkb_symbols   { include "pc+ch+inet(evdev)+terminate(ctrl_alt_bksp)"    };
        xkb_geometry  { include "pc(pc105)"     };
};

คำตอบ:


17

ฉันมีปัญหาคล้ายกันเมื่อเชื่อมต่อผ่าน ssh ไปยัง Mac OS X โดยใช้เทอร์มินัลอีมูเลเตอร์ แม้ว่าฉันจะตั้งค่า LANG เป็นde_DE.UTF-8ฉันก็ไม่สามารถพิมพ์อักขระใด ๆ ด้วย umlauts

การแก้ไขที่ฉันพบคือการสร้าง / แก้ไข~/.inputrc (หรือแก้ไขบรรทัดต่อไปนี้ใน/etc/inputrc):

set input-meta on
set output-meta on
set convert-meta off

ตอนนี้ฉันพิมพ์ umlauts ได้ ฉันเชื่อว่าสิ่งนี้ใช้ได้กับ xterms โดยทั่วไป


ขอขอบคุณสิ่งนี้จะช่วยแก้ปัญหาอุมเลาท์! แต่ฉันยังคงไม่สามารถพิมพ์อักขระเช่น ~, ^ หรือ¨
Jonas

มันแก้ไขสิ่งนี้สำหรับฉันด้วยเช่นกัน (หลังจากเข้าสู่ระบบใหม่) แต่ก็ยังมีบางสิ่งที่แปลก: ถ้าฉันพิมพ์öฉันได้รับö แต่ดูเหมือนว่าจะมีตัวละครที่ซ่อนอยู่ด้วย: ฉันสามารถลบ Backspace สองตัวแม้ว่าฉันจะพิมพ์ öหนึ่ง การเข้าสู่LANG=de_DE.UTF-8commandline จะทำให้เกิดเหตุการณ์นี้ขึ้น แต่จะหายไปในเชลล์ใหม่
rubo77

@ rubo77 เพิ่มลงexport LANG=de_DE.UTF-8ในของคุณ~/.bashrc
naitsirch

5

ตั้งค่าตำแหน่งที่ถูกต้องด้วย

sudo dpkg-reconfigure locales

ที่นั่นคุณจะเลือกde_DE.UTF-8เป็นการตั้งค่าของคุณ ที่แก้ปัญหาทั้งหมด)

ข้อมูล: การเปลี่ยนค่าสำหรับset convert-meta offin /etc/inputrcไม่ทำงานอย่างสมบูรณ์:
มันแก้ไขเช่นนี้ แต่ก็ยังมีบางสิ่งที่แปลก: ถ้าฉันพิมพ์öฉันได้รับö แต่ดูเหมือนว่าจะมีตัวละครที่ซ่อนอยู่ด้านหน้าö: ฉันสามารถ ลบซึ่ง Backspace อักขระสองตัวถึงแม้ว่าฉันจะพิมพ์เพียงหนึ่งö


ขอบคุณสำหรับคำตอบของคุณเศร้าที่ฉันไม่สามารถทดสอบผลลัพธ์ของข้อเสนอแนะของคุณเนื่องจากระบบปัญหานี้เกิดขึ้นไม่ได้อยู่อีกต่อไป นอกจากนี้ฉันไม่เข้าใจว่าทำไมเปลี่ยนสถานที่จาก de_CH.UTF-8 เป็น de_DE.UTF-8 ควรเปลี่ยนสถานการณ์
Jonas

ไม่แน่ใจว่าฉันมีเลย์เอาต์ภาษาอังกฤษมาก่อน แต่บางทีเลย์เอาท์ ch ก็ใช้ deadkeys สำหรับöด้วยหรือ
rubo77

ใช่มันทำเช่นนั้น de_CH เป็นเลย์เอาต์สวิส - เยอรมันซึ่งคล้ายกับเลย์เอาต์เยอรมันมาก
Jonas

1
ฉันคิดว่าคำตอบนี้ควรคงไว้สำหรับผู้ใช้ที่มีปัญหาคล้ายกัน แต่ไม่ใช้เค้าโครง CH ฉันเดาว่าโซลูชันจะทำงานdpkg-reconfigure localesอีกครั้ง (ไม่ใช่เลย์เอาต์เฉพาะที่ฉันใช้)
rubo77

ตกลงกัน! ฉันหวังว่าฉันสามารถทดสอบว่ามันแก้ปัญหาได้หรือไม่
jonas

-1

นอกจากคำตอบที่กล่าวมาอาจเป็นไปได้ว่าสถานที่ของคุณจะไม่ได้รับการรวบรวม มีไฟล์ต้นฉบับโลแคลภายใต้ / usr / share และไฟล์โลแคลที่คอมไพล์ภายใต้ / usr / lib สิ่งที่อยู่ภายใต้ / usr / lib อาจเสียหายหรือไม่ได้รับการคอมไพล์เพื่อแก้ไขว่าคุณสามารถใช้ยูทิลิตี้ localedef เพื่อรวบรวมไฟล์ หรือบนระบบที่ใช้ Debian dpkg-reconfigure

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