Soru Unicode karakterleri gösterecek bir Windows komut kabuğu var mı?


İçinde uygun glifleri olan yüklü fontları varsayarak, Windows XP için Unicode karakterleri gösterecek bir komut kabuğu var mı? En azından Unicode'u doğru olarak görüntülemesi gereken iki şey:

  • Dizin listeleri. Yazarken neye sahip olduğumu umursamıyorum (dir, ls, get-childitem, vb.), Adlarında Unicode karakterleri bulunan dosyalar, yazdırılamayan karakter kutusuyla değil, sağdaki gliflerle görüntülenir.
  • Metin dosyası içeriği listeleri. Yine, karakterler basıldığı sürece 'daha az', 'daha', 'kedi', 'köpek' vb. Dosyanın karakter kodlaması nedeniyle bunun daha karmaşık olduğunu biliyorum, bu yüzden komut satırında bunu belirtmek zorunda kalırsam, benimle sorun yok.

Şimdiye kadar denediğim şudur:

  • cmd.exe
  • Windows PowerShell; Çok dilli versiyon dahil.
  • Cygwin bash

Şanssız. Yüklemeyi bile denedim cmd / PowerShell için özel yazı tipleri. PowerShell ve cmd.exe, yazdırılamayan kutuyu oradan kopyalayabildiğim / yapıştırabildiğim ve doğru karakterlerle diğer uygulamalara yapıştıracağım anlamında Unicode-farkında gibi görünüyor. Cygwin (?) Dönüştürmek için görünüyor? karakter ve bu kopya / yapıştır içinde gelir.

Herhangi bir fikir?


48
2017-12-18 20:56


Menşei




Cevaplar:


Bu PowerShell v1'de önemli bir sorundu. Sürüm 2, problemi düzelten bir "grafik kabuk" ile gönderilir, bu da PowerShell ile değil, Windows konsol ana bilgisayarıyla (Cmd.exe de kullanır) sorunu çözer. İsterseniz, PowerShell v2 için geçerli CTP'yi alabilirsiniz.

Aslında, PowerShell v2.0 sonlandırıldı ve Ağustos başında Windows 7 ve Windows Server 2008 R2 sürümüyle birlikte gönderildi. Buna ek olarak, geriye dönük sürümler (Windows Vista / 2008), bir önceki gün Release Adayı kilometre taşına ulaştı; Windows XP / Windows Server 2003 çok kısa bir süre takip etmelidir. Linky linky.


18
2017-12-18 21:15



Soruna çalışan bir çözüm önermek için kışkırtıldı. Bunu kabul ederdim, ama daha iyisi için umut bekliyorum. "Erken alfa" olarak, gerçekten kullanışlı bir kabuk olmak için uzun bir yol var. - Brandon DuRette
Mevcut CTP3 inanılmaz derecede istikrarlı ve ne yazık ki, bu günlerde para ödemeyi gerektirmeyen tek çözüm hakkında. - Don Jones
Bu eski konu yakın zamanda listenin en üstüne çarptığından beri, birincil cevabı en son Powershell bitlerine bağlantıyla düzenledim. - Richard Berg
Anlamıyorum Bu "grafik kabuk" nerede? Windows 8.1 kullanıyorum ve Powershell'i çağırmak hala 1252 kod sayfasını kullanıyor (ABD dizüstü bilgisayarımda). - Jason R. Coombs
Powershell ISE grafik bir kabuk, görünüyor. Tamamlama vb. İle açılır. - sandos


Bunu yapmak için cmd.exeUnicode TrueType yazı tipine geçmek için konsol özellikleri iletişim kutusunu kullanmanız gerekir.

Sonra şu komutları kullanın:

 CHCP 65001
 DIR > UTF8.TXT
 TYPE UTF8.TXT

Komutlar:

  • Konsolu UTF-8'e geçir (65001)
  • DIR'nin çıkışını yönlendir UTF8.TXT
  • UTF-8'i konsola dökün

Konsolda düzgün görüntülenebilmesi için karakterlerin yazı tipi tarafından desteklenmesi gerekir.

I18N: Windows komut isteminde Unicode (C ++; .Net; Java)


39
2018-04-10 13:56



Bunu yapmanın doğru yolu bu! Thx McDowell! - Peter Parker
Göre stackoverflow.com/questions/14109024/... CP 65001, Unicode desteği ile ilgili tüm problemleri çözmez, bu yüzden bu kusurlu bir çözümdür. - ivan_pozdeev


Kod sayfasının "chcp 65001" komutuyla UTF-8 olarak ayarlanması, dosya içeriğini kabaca doğru bir şekilde yazdırmanıza yardımcı olur (cmd.exe'yi kullanarak). Bu, dizin listelemeleri için işe yaramaz (NTFS dosya adlarında UTF-16 kodlaması).


6
2018-01-09 19:08



Güzel cevap. Bu da Powershell'de çalışıyor. - Jason R. Coombs


Bunu dene:

powershell.exe -NoExit /c "chcp.com 65001"

Msysgit'i kim kullanıyor?

powershell.exe -NoExit /c "chcp.com 65001; sh --login -i"

UTF-8 desteği ile TrueType yazı tipinin penceresinin yazı tipini değiştirmeyi unutmayın ("Lucida Console")


5
2017-12-28 08:02



Bu iyi çalışır, böylece utf8 karakterleri doğru şekilde görüntülenir. Powershell.exe yapılandırmasını kalıcı kılmak için bir yol var mı (chcp.com 65001) varsayılan olarak seçilsin? - chmike
Yapılandırdığınızla aynı cmd, aynı zamanda kullanım chcp 65001, sonra font Lucida konsolu seçin - alljoyland
Aşağıdaki yapılandırmada msysgit'i PowerShell'de kullanıyorum: gist.github.com/iegik/7485025 - iegik


Çin çıkışını nasıl alabilirim cmd.exe Windows 7 Pro İngilizce Sürüm üzerinde çalışıyor. Japonca, Rusça ve Lehçe ile dosya isimlerini de denedim ve hepsi doğru şekilde görünüyor. Giriş de, en azından bir dir xxx*ascii olmayan karakterler içeren.

  1. kurmak Console2, bu bir ön uç cmd.exe (ve diğer kabuklar)

  2. Kurulumdan sonra bu talimatlar

    Anahtarı sil HKEY_CURRENT_USER\Console\Console2 command window kayıtta.

    Aşağıdaki verileri Windows kayıt defterine aktarın:

    Windows Registry Editor Version 5.00
    [HKEY_CURRENT_USER\Console\Console2 command window] 
    "CodePage"=dword:000003a8 
    "FontSize"=dword:000a0000 
    "FontFamily"=dword:00000036 
    "FontWeight"=dword:00000190 
    "FaceName"="細明體" 
    "HistoryNoDup"=dword:00000000
    
  3. Yazı tipini değiştirmeniz gerekebilir veya olmayabilir. Başlangıçta yazı tipini ayarladım @NimSumve Çince karakterler 90 derece döndü. Sonra değiştirdim NimSum (@ olmadan) ve doğru çıktı. Sonra sadece meraktan çıktım Consola ve yine de Çince karakterleri görebiliyorum. Bu yüzden yazı tipini ayarlamanız gerekip gerekmediğinden emin değilim.


2
2018-04-28 00:42





Gerçek bir kabuk için, PowerShell Plus'ı deneyin. Unicode yazı tiplerini seçebilir ve sadece editörde değil, gerçek konsolda da diğer dillerle çalışabilirsiniz.


2
2018-01-03 22:02





Deneyin Konsol 2. Yine de renkler / palet yapılandırmalarına dikkat edin. Bunlar biraz buggy. Onları çalışmaz hale getirdim; cmd.exe gibi davranırlar.


1
2018-01-07 19:33



Önerinizde, denedim ve sorunumu çözmüyor gibi görünüyor. Korece karakterleri içeren adlara sahip dosyaların bulunduğu bir dizinde 'dizin' çalıştırılıyor? Bu davranış, cmd.exe ile aynıdır. - Brandon DuRette
Tamam. Console2, muhtemelen daha iyi bir ön uç ile Windows konsol ana bilgisayarı da kullanıyor. - Kim André Sand