ฉันกำลังตั้งค่าโมดูล CPAN สำหรับ Perl บน CentOs 5 และหนึ่งในคำถามคือ 'เทอร์มินัลของคุณรองรับ UTF-8 หรือไม่' (Paraphrased) ฉันจะทราบได้อย่างไร
ฉันกำลังตั้งค่าโมดูล CPAN สำหรับ Perl บน CentOs 5 และหนึ่งในคำถามคือ 'เทอร์มินัลของคุณรองรับ UTF-8 หรือไม่' (Paraphrased) ฉันจะทราบได้อย่างไร
คำตอบ:
จริงๆแล้ววิธีทดสอบ Surefire คือการดาวน์โหลดไฟล์ข้อความและวางไว้ในเครื่องเทอร์มินัลและดูว่าทุกอย่างดูโอเคไหม
หรือถ้าคุณทำได้ให้คอมไพล์เทอร์มินัลอีกครั้งเพื่อเปิดใช้งานตัวเลือกยูนิโค้ด (สมมติว่ามันมีหนึ่งตัว)
$ TERM และ $ LANG มีลักษณะอย่างไร
พิมพ์สิ่งนี้ใน terminal ของคุณ:
echo -e '\xe2\x82\xac'
หากเครื่องเทอร์มินัลของคุณรองรับ UTF-8 เครื่องจะส่งสัญญาณยูโร:
€
วิธี lamest: รันต่อไปนี้และตรวจสอบผลลัพธ์ มันจะเป็นตัวพิมพ์ใหญ่ O พร้อมกับหมวกถ้าเทอร์มินัลแสดง UTF-8
perl -le 'print "\x{c3}\x{94}"'
perl -CO -le 'print "\x{d4}"'
วิธีการดับเพลิงที่แน่นอนที่สุดคือการใช้คำสั่ง 'locale' มันจะพิมพ์ตัวแปรต่าง ๆ และจิปาถะทั้งหมดที่กำหนดอักขระที่ใช้ ตัวอย่างเช่นนี่คือผลลัพธ์ของฉันใน RHEL5.3 ตั้งค่าให้ใช้เฉพาะ UTF-8 ตามค่าเริ่มต้น
LANG="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_CTYPE="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_ALL=
คุณสามารถใช้คำสั่งต่อไปนี้:
locale charmap
curl http://www.cl.cam.ac.uk/~mgk25/ucs/examples/UTF-8-demo.txt
หรือ
wget -O - http://www.cl.cam.ac.uk/~mgk25/ucs/examples/UTF-8-demo.txt
นี้เห็นได้ชัดต้องหรือwget
curl
UTF=$(echo -e "\u263A")
if [[ ! "$UTF" =~ "A" ]] ; then
echo -n "UNICODE here!"
fi
echo
builtin รองรับ\u
หรือไม่