Como a codificação é tratada corretamente durante a cópia e colagem entre programas?

5

Suponha que

  • um programa A abre um arquivo de texto A usando a codificação A para decodificar o arquivo e
  • um programa B abre um arquivo de texto B usando a codificação B.

Quando copiamos algum texto do arquivo B no programa B para o arquivo A no programa A usando a seleção do mouse, ctrl + c e então ctrl + v , ouvi dizer que a interface gráfica do sistema operacional (por exemplo, o sistema de janelas X no Linux, e acho que algo semelhante no Windows) lida com a transferência entre os programas.

Por exemplo, o programa A pode ser qualquer programa que aceite texto-colar, como um editor de texto (por exemplo, emacs, gedit) ou qualquer outro programa, e o programa B pode ser qualquer programa que aceite texto-cópia, como visualizador de texto (por exemplo, um navegador da web como o firefox, chrome), um editor de texto ou qualquer outro programa.

Pergunta:

Observe que a codificação A e a codificação B podem ser diferentes. O que deve acontecer sob o gancho de ctrl + c e ctrl + v para que o texto colado no arquivo A no programa A pode ser consistente com o texto original no arquivo A?

  • Ao pressionar ctrl + c no arquivo B e no programa B, é o conteúdo binário do texto copiado na "área de transferência" da GUI do SO o mesmo que o conteúdo binário do texto original no arquivo B? Ou seja é a codificação para o texto copiado na "área de transferência" ainda codificando B? Qual programa deve determinar a codificação do texto copiado na "área de transferência"?

  • Ao pressionar ctrl + v no arquivo A e no programa A, o conteúdo binário do texto colado no arquivo A é o mesmo que o conteúdo binário de o texto original no arquivo B? Ou seja no novo arquivo A, o texto original deve ser decodificado com a codificação A, e o texto colado deve ser decodificado com a codificação B? Qual programa deve determinar a codificação do texto colado no arquivo A?

por Tim 15.01.2015 / 20:06
fonte

1 resposta

2

A solução mais simples é usar uma codificação padrão. Por exemplo, no Windows, uma codificação padrão é "unicode", que se refere ao UTF-16, a codificação recomendada para aplicativos do Windows. Os programas que aceitam entrada de clipboard têm que poder interpretar a codificação. Tudo isso está documentado no MSDN.

Unicode (Windows) Formatos padrão da área de transferência

    
por 15.01.2015 / 20:18
fonte