comportamento estranho com caracteres Unicode no Windows

1

Ok, eu não sei se isso é uma questão de programação, mas certamente é técnico, então estou perguntando aqui. Eu estava trabalhando em algumas coisas de internacionalização no meu código PHP, e para garantir que o meu HTML gerado mostrasse o Unicode corretamente baseado na codificação e coisas eu decidi adicionar algum texto em chinês à minha página PHP, que então ecoa no navegador para completar o meu caso de teste.

Então entrei no google e digitei "Chinese", copiei o primeiro texto em chinês que a pesquisa retornou (que era 汉语/漢語 ). Eu então copiei para Notepad++ que é meu editor, e para minha surpresa apareceu como caixas semelhantes a [][]/[][] . Então eu pensei que a codificação em Notepad++ estava bagunçada e eu mudei a codificação para UTF-8 e UCS , nenhum funcionou. Eu fiz isso fresco em um arquivo recém-codificado, ainda tenho as caixas. O mesmo conteúdo quando eu colo em Google e StackOverFlow (como eu fiz nesta postagem) mostra chinês correto!

Eu até abri Windows Clipboard Viewer e o conteúdo é representado na área de transferência como caixas! Eu tentei colá-lo em Windows Explorer address bar e usar para renomear um arquivo para, mas eu ainda recebo caixas. Mas aparece corretamente quando colado no meu Chrome Browser address bar !

Este é um problema do Windows? Desde que eu sou capaz de colá-lo corretamente em SO, os dados na memória devem ser codificados corretamente, certo? Mas se for esse o caso, por que aparece como caixas no Visualizador da Área de Transferência?

Estou confuso aqui ... A propósito, estou usando Windows XP with SP3 .

(Estou fazendo esta pergunta aqui, mesmo que não seja programático, porque está me impedindo de executar meus casos de teste de programação.)

    
por open_sourse 04.10.2012 / 19:31

2 respostas

0

O motivo pelo qual o Notepad ++ não mostra os caracteres certos é provavelmente porque a codificação do documento era "ANSI". Como os caracteres chineses não são representáveis em “ANSI”, eles foram alterados. O Notepad ++ funciona de forma estranha com as codificações. Mas a solução simples é definir, através de seus menus, a codificação para UTF-8 antes colando qualquer coisa.

Em outros contextos, a exibição de caracteres chineses pode falhar porque a renderização usa uma fonte que não os contém. Existe uma grande variação aqui. Muitos programas podem retornar a outras fontes se a fonte principal não contiver algum caractere que apareça no texto.

    
por 04.10.2012 / 19:57
1

Com uma cópia em inglês do Windows XP, você precisa informar explicitamente ao Windows se deseja suporte adicional para scripts mais complexos. Eu não tenho uma caixa de XP na minha frente, mas tente iniciar no Painel de Controle - > Configurações regionais e procure opções para instalar o suporte a texto internacional. Você pode precisar da sua mídia de instalação original.

Esta etapa instalará fontes e tabelas adicionais de que o Windows precisa. Você vê isso funcionando em páginas da web, porque os navegadores da era do XP tendem a fazer um monte de trabalho. A maioria dos outros aplicativos espera que o Windows faça toda a vinculação de fonte e trabalho de fallback de fonte, e o Windows XP não instala todo esse suporte por padrão.

Acredito que versões mais recentes do Windows, como o Vista e o 7, instalem todas as fontes e tabelas por padrão.

    
por 04.10.2012 / 22:15