UTF8 ตัวอักษรใน terminal bash ของ windows 10


29

ฉันได้ติดตั้ง bash shell ใหม่บน windows 10 ฉันใช้มันร่วมกับ ZSH อย่างไรก็ตามไม่มีอักขระ utf8 ที่ใช้งานได้ปรากฏเป็นบล็อกสี่เหลี่ยม ฉันจะเปิดใช้งานการเข้ารหัสอักขระ utf8 ในเชลล์เป็นค่าเริ่มต้นได้อย่างไร เป็นไปได้ไหม


5
หากตัวละครแต่ละตัวปรากฏเป็น หนึ่ง บล็อกสี่เหลี่ยมจากนั้น UTF-8 ใช้งานได้แล้ว มันเป็นแบบอักษรที่ขาดการสนับสนุน Unicode
grawity

ใช้ chcp 65001 เพื่อเปลี่ยนเพจเพจเป็น UTF-8 และเปลี่ยนแบบอักษรเป็น Consolas
phuclv

ฉันเปลี่ยนเป็น SimSun-Ext B แบบอักษรและอักขระทั้งหมดแสดงอย่างถูกต้อง
Ryan Foley

4
@grawity ฉันใช้ uubntu mono และตอนนี้เปลี่ยนเป็น consolas แทนที่จะได้กล่องสี่เหลี่ยมเปล่าฉันจะได้กล่องสี่เหลี่ยมที่มีเครื่องหมายคำถามอยู่ข้างใน ฉันยังลองใช้คำแนะนำ chcp แต่มันถูกตั้งค่าเป็นการเข้ารหัส UTF-8 แล้วเมื่อฉันตรวจสอบคุณสมบัติ
Ortix92

2
ฉันต้องการจะชี้ให้เห็นว่าปัญหานี้ยังไม่ได้รับการแก้ไขและฉันยังไม่สามารถแสดงอักขระ Unicode utf8 ได้อย่างถูกต้องโดยใช้ ZSH
Ortix92

คำตอบ:


9

คลิกขวาที่แถบชื่อที่ด้านบนของหน้าต่างทุบตีเลือกคุณสมบัติรายการ ในหน้าต่างเปิดเป็นแท็บที่คุณสามารถเปลี่ยนแบบอักษร ฉันเปลี่ยนฟอนต์เป็น "Source Code Pro" และขนาด 14

ดูดีและอักขระ utf-8 ทั้งหมดทำงานได้


นั่นคือคำตอบที่แท้จริง คุณสามารถเลือกแบบอักษรได้ตามต้องการ UTF8 ฉันติดตั้ง Menlo แล้วลืมเปลี่ยนเป็นตัวเลือกทุบตีโดยสุจริตไม่ได้คิดแม้แต่เรื่อง
StalkAlex

8

เพื่อเพิ่มคำตอบของ Doctorj มีฟอนต์สองสามตัวที่ติดตั้งตามค่าเริ่มต้นที่คุณสามารถใช้ได้ (บนเชลล์ทุบตี Windows 10)

ภาษาทดสอบ: บัลแกเรีย, ยูเครน, จีนตัวย่อ, จีนดั้งเดิม, เดนมาร์ก, ฝรั่งเศส, เยอรมัน, อิตาลี, ญี่ปุ่น, คาซัค, เกาหลี, มาซิโดเนีย, มองโกเลีย, นอร์เวย์, โปแลนด์, โปรตุเกส, รัสเซีย, เซอร์เบีย, สเปน, สวีเดน

แบบอักษรเริ่มต้นต่อไปนี้แสดงอักขระที่สังเกตได้ทั้งหมด:

  • MS โกธิค
  • NSimSun
    • ดูเหมือนจะไม่แสดงทั้งหมดของคาซัค
  • SimSun-ExtB (แบบอักษรแรสเตอร์) - คำแนะนำของฉัน

ทั้ง MS Gothic และ NSimSun

  • เว้นช่องว่างที่ไม่ใช่ภาษาละติน Non-CJK (ภาษาจีนญี่ปุ่นเกาหลี) (มาซิโดเนียคาซัคบัลแกเรีย)
  • มีออฟเซ็ตแนวตั้งแปลก ๆ สำหรับอักขระละตินที่เน้นเสียง (á, é)
  • ไม่ได้แสดงตัวละครมาซิโดเนียอย่างน้อยหนึ่งตัว

SumSun-ExtB (แบบอักษรแรสเตอร์):

  • มีข้อความเตือนว่าแบบอักษร Raster อาจแสดงผลไม่ดี
  • อักขระส่วนใหญ่แสดงมืด (อาจมีปัญหากับความสว่างหน้าจอต่ำ)
  • อักขระที่ไม่ใช่ ASCII มีความสว่างเมื่อเปรียบเทียบกับอักขระ ASCII (โซลูชันที่เป็นไปได้ให้ใช้ตัวเลือกตัวหนา)
  • อักขระของทุกภาษาอยู่ใกล้กัน (ง่ายต่อการดูระยะห่างระหว่างคำ)
  • ดูเหมือนว่าน่าเชื่อถือมากขึ้นสำหรับภาษาที่ไม่ใช่ละตินไม่ใช่ CJK

ด้วยแบบอักษรใด ๆ เหล่านี้ทั้งพร้อมรับคำสั่งและ PowerShell สิ่งแปลก ๆ เกิดขึ้นเมื่อคุณคลิกที่อักขระที่ไม่ใช่ ASCII แม้ว่ามันจะกลับไปเป็นปกติเมื่อคุณเน้นข้อความ

ในการติดตั้งแบบอักษร: โปรดทราบว่าคุณต้องเปลี่ยนแบบอักษรสำหรับเชลล์ Windows ที่คุณใช้เช่น Command Prompt หรือ PowerShell ไม่ใช่วิธี Linux ผ่านการทุบตี ลิงค์นี้จะอธิบายถึงแบบอักษรที่สามารถใช้ได้บน Command Prompt (แบบอักษร monospace และวิธีการติดตั้งและเลือกแบบอักษรสำหรับ Command Prompt): เพิ่มแบบอักษรให้กับพรอมต์คำสั่ง

  • เรียก Registry Editor ขึ้นมา (รัน "regedit")
  • ค้นหาโฟลเดอร์ NT \ CurrentVersion \ Console \ TrueTypeFont HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows
  • คลิกขวา (หรือแก้ไข) - & gt; ใหม่ - & gt; ค่าสตริง
  • ตั้งชื่อฟอนต์ที่มี 0 มากกว่าหนึ่งอันสุดท้าย (เช่น "000")
  • คลิกขวาที่รายการแล้วเลือก "แก้ไข ... "
  • ป้อนชื่อของตัวอักษรหรือไฟล์ OTF (โดยไม่ต้อง. otf)

สำหรับข้อมูลเกี่ยวกับการติดตั้งแบบอักษรผ่านบรรทัดคำสั่งบน Windows ดูคำถามและคำตอบนี้

  • ฉันพยายามติดตั้ง "Source Code Pro" แต่มันไม่ปรากฏในแบบอักษรของฉัน
  • ฉันติดตั้ง DejaVu Sans Mono และมันใช้งานได้กับภาษาส่วนใหญ่
  • ฉันได้ติดตั้งฟอนต์การบินอวกาศของ Noto ของ Google แล้วและใช้งานได้ แต่ไม่ใช่สำหรับ CJK นอกจากนี้พวกเขายังกล่าวอีกว่าพวกเขาไม่ได้รับการสนับสนุนด้านอวกาศจาก CJK
  • ฉันติดตั้ง Inconsolata ของ Google และไม่น่าลอง
  • ฉันติดตั้ง GNU FreeFont (FreeMono) และใช้งานได้ แต่ไม่ใช่สำหรับ CJK
  • ฉันยอมแพ้และกลับไปที่ SimSun-ExtB

(หมายเหตุ: ฉันยังไม่มีชื่อเสียงเพียงพอที่จะโพสต์ลิงก์)


4

คุณสามารถลองใช้ DejaVu Sans Mono ได้ดีสำหรับฉัน


11
แม้ว่านี่อาจเป็นวิธีแก้ปัญหาของ OP แต่ก็เป็นคำใบ้มากกว่าคำตอบที่มีคุณภาพสูง อาจได้รับการปรับปรุงให้ดีขึ้นโดยให้คำแนะนำเกี่ยวกับ: 1) วิธีเปลี่ยนแบบอักษรสำหรับเทอร์มินัล Windows 10 Bash; 2) วิธีการติดตั้งแบบอักษรดังกล่าว (ยกเว้นว่าจะอยู่ในทุก Windows 10 โดยค่าเริ่มต้น - ฉันใช้ Linux ฉันไม่รู้)
Kamil Maciorowski

1
ฉันเคยใช้ Ubuntu Mono มาก่อนและมีปัญหากับมัน DejaVu Sans Mono แก้ไขปัญหาได้
smonff

0

นี่เป็นความคิดเห็นมากกว่าคำตอบ แต่เนื่องจาก SE ไม่อนุญาตให้ฉันแสดงความคิดเห็น ...

คุณไม่ได้ให้ข้อมูลเพียงพอ Unicode จัดเตรียมอักขระที่เป็นไปได้มากกว่าล้านตัวโดยมีการกำหนดมากกว่า 100,000 ตัว (ส่วนที่เหลือนั้นใช้สำหรับเมื่อเราติดต่อกับมนุษย์ต่างดาวหรือมีโอกาสมากขึ้นสำหรับระบบการเขียนของ Earthlings ที่ยังไม่ได้เข้ารหัส) สิ่งเหล่านี้แบ่งออกเป็นสคริปต์ประมาณ 150 สคริปต์: ละติน, Cyrillic, อาหรับ, จีน เพื่อจัดหาร่ายมนตร์ (รูปภาพของอักขระ) สำหรับอักขระเหล่านั้นทั้งหมด (มีหนึ่งหรือสองกล่องที่มีจุดโค้ดอยู่ข้างใน แต่นั่นไม่ใช่สิ่งที่คุณต้องการ)

ดังที่ grawity กล่าวเมื่อสองปีที่แล้วถ้าคุณได้รับกล่องที่คุณคาดหวังว่าจะมีตัวอักษรตัวเดียวแอปพลิเคชันของคุณจะแสดง Unicode (สันนิษฐานว่าเข้ารหัส UTF-8 ของ Unicode) สิ่งที่คุณขาดคือฟอนต์ที่ให้ร่ายมนตร์สำหรับสคริปต์ที่คุณต้องการแสดง หากคุณกำลังแสดงภาษารัสเซียคุณต้องการแบบอักษรที่มีอักขระซิริลลิก หากคุณต้องการแสดงภาษาจีนคุณต้องใช้แบบอักษรที่มีอักขระเหล่านั้น (แบบอักษรส่วนใหญ่ดังกล่าวจะแสดงตัวอักษรละติน - ชนิดที่เราใช้เป็นภาษาอังกฤษ - แต่ไม่จำเป็นต้องสวยมาก)

ดังนั้นคำถามของฉันคือคุณ: คุณพยายามที่จะแสดงสคริปต์อะไร จนกว่าเราจะรู้ว่าคำตอบทั้งหมดจะถูกเดา

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

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