Mesmo no Windows 7, você consegue fazer um “dir” e conseguir ver nomes de arquivos que possuem caracteres unicode?

5

Isso está de alguma forma relacionado à pergunta

No Windows 7, dir ou tree não pode mostrar caracteres unicode, mesmo começando cmd com cmd / U

Mesmo no Windows 7, descobri que a única maneira de obter o unicode em um arquivo é

> cmd /U
> dir /B > files.txt

o arquivo estará em "Unicode" quando eu abrir no bloco de notas e tentar "salvar como", e se eu dir /B > files.html e abrir o arquivo HTML no firefox, ele pode mostrar usando codificação de UTF-16 (ou UTF- 16 LE).

mas, se eu quiser vê-lo na tela, em vez de ir para um arquivo, ainda é impossível. Existe uma maneira de fazer isso acontecer? Possivelmente de alguma forma dizendo ao cmd para não mostrar caracteres não imprimíveis como "?"

Atualização: eu tentei o cmd.exe, o bash do cygwin no Windows e o PowerShell. Eles são os mesmos. Exceto se eu alterar a opção "Properties - > Font" para Consolas ou Lucida Console, haverá alguma melhoria - agora não é ponto de interrogação, mas é quadrado ou quadrado com um ponto de interrogação.

Os computadores Mac mais caros com o Mac OS X podem fazê-lo. O Ubuntu grátis também pode fazer isso.

    
por 太極者無極而生 27.06.2010 / 07:09

5 respostas

5

Esta é uma pergunta muito antiga, mas todas as respostas dadas aqui estão erradas.

Você nunca verá a saída Unicode na linha de comando do Windows (CMD.exe). O motivo é que o CMD não pode exibir Unicode. No entanto, ele pode exibir DBCS (Conjunto de caracteres de dois bytes).

Se você quiser ver a saída em japonês, por exemplo, precisará alterar a região do sistema para japonês e reinicializar. Em seguida, você poderá ver caracteres DBCS (ou seja, Shift-JIS) japoneses na linha de comando. O Windows suporta páginas de códigos DBCS em japonês "Shift-JIS", em chinês simplificado, coreano e tradicional "Big5".

Aliás, você pode canalizar UTF-16 (imprecisamente usado de maneira intercambiável com "Unicode" pela Microsoft) para um arquivo, depois abrir esse arquivo no Bloco de Notas, por exemplo, e exibir os caracteres Unicode. Você também pode marcar e copiar o texto sem sentido do CMD.exe e colá-lo no Bloco de Notas e ver os caracteres Unicode. Em outras palavras, o CMD suporta Unicode, mas não exibe Unicode.

Você pode encontrar mais informações neste blog postar .

    
por 01.12.2014 / 05:36
1

Com base no seu nome de usuário, suspeito que você trabalhe principalmente com idiomas asiáticos.

As ferramentas do Windows operam normalmente no modo unicode (como você viu, canalizando a saída de dir em um arquivo e abrindo esse arquivo com um editor):

  1. a ferramenta faz o seu trabalho
  2. gera caracteres unicode
  3. outro programa pega essa saída e precisa exibi-la.

para exibir qualquer caractere na tela, o programa da etapa 3 deve procurar o glifo apropriado para a seqüência de bytes fornecida. exemplo:

  • 0x65 'a' mapeia para um glifo diferente em cada fonte (assim, o 'a' parece diferente de fonte para fonte)

  • 0x937 'Ω' (grego 'omega') é mapeado para um glifo diferente em cada fonte, bem

esse mapeamento só funciona se a fonte tiver um glifo para a seqüência de bytes fornecida. Caso contrário, o resultado visual é diferente, às vezes você vê '?', às vezes diamantes etc.

novamente: dir produz byquesequences, que às vezes são puramente no intervalo ASCII, às vezes eles estão no intervalo unicode (dependendo de quais nomes de arquivos ele encontra). Ele envia essas seqüências para outro programa que é responsável por realmente renderizar as seqüências. Para poder exibir essas seqüências, esse programa deve mapear a seqüência para um glifo. para fazer isso, ele precisa procurar em uma fonte pelo glifo. se a fonte não tiver um glifo para a seqüência determinada, o programa não poderá exibir a sequência de bytes produzida, por exemplo, dir .

assim, a solução para o seu problema (ver qualquer caractere unicode no 'console / terminal' do Windows) é: use uma fonte para o programa que tenha (quase) todos os glifos para (quase) qualquer unicode dado por isso.

    
por 27.06.2010 / 08:42
0

link

Use chcp 65001 para alterar a página de códigos para UTF8 e usar o Lucida Console.

    
por 27.06.2010 / 10:04
0

Não tem nada a ver com codificações, pois o console do Windows sempre usa Unicode internamente. Os caracteres simplesmente não estão disponíveis nas fontes que você usa, projetadas para programação e idiomas europeus. Eu não tenho acesso ao Windows no momento, mas lembro que eu poderia imprimir caracteres gregos depois de mudar para a fonte Lucida Console. Usar uma fonte como DejaVu Sans Mono pode funcionar.

    
por 28.06.2010 / 10:55
0

Ok, esta é uma solução usando o PowerShell:

1) Clique no botão Start no Windows 7
2) Agora, na linha em branco, digite PowerShell
3) Escolha PowerShell ISE < - note que é ISE

Agora, se você usar ls , poderá ver caracteres unicode ...

4) se você também usa chcp 65001 , então se o seu programa imprimir caracteres UTF-8, eles serão bem exibidos também.

Você também pode ls > list.txt e type list.txt , e o conteúdo também aparece em caracteres Unicode.

tree ainda não mostrará caracteres unicode.

também, dentro do ISE do PowerShell, cmd /U /C dir /B também não funcionará.

ls -R será.

    
por 28.06.2010 / 12:52