2009-12-18 8 views
16

Tengo un documento A en la codificación A que se muestra en la herramienta A y un documento B en la codificación B que se muestra en la herramienta B. Si corté y pegué (parte de) B en A, ¿cuál podría ser la codificación de caracteres resultante? Me doy cuenta de que esto depende de la herramienta A y la herramienta B y la información contenida en el buffer de pegado (que presumiblemente puede contener una codificación?) Y el sistema operativo.¿Cómo afecta la función de "cortar y pegar" la codificación de caracteres y qué puede salir mal?

¿Qué deberían hacer las herramientas de alta calidad? y en la práctica, ¿cuántas de las herramientas comunes (por ejemplo, Word, TextPad, varios IDEs, etc.) hacen un buen trabajo?

+0

¿Esto es en Windows, Unix, ToasterOS? –

+1

Word es una aplicación de Windows, y Google para "TextPad" aparece "TextPad - el editor de texto para Windows", así que supongo que se refiere a Windows. – Ken

+1

Tenemos ambas plataformas Unix y Windows, por lo que cualquier diferencia fundamental en las dos sería útil. Mi propia máquina es Windows, así que estaré contento con la respuesta de Windows. –

Respuesta

16

En primer lugar, la representación interna del texto del editor de texto no tiene ninguna relación con la forma en que se codifica el texto (serializado) al guardar el archivo. Entonces un documento no está "en" una codificación; es una secuencia de personajes abstractos. Cuando el documento se guarda en un archivo (o se transmite a través de la red) , entonces se codifica.

Depende de cada aplicación decidir qué pone en el portapapeles. Normalmente, una aplicación de Windows que sabe lo que está haciendo colocará una cantidad de representaciones diferentes en el portapapeles. Cuando pegue en la otra aplicación, la aplicación buscará la representación que mejor se adapte a sus necesidades.

En su caso, un editor de texto (que sabe lo que está haciendo) colocará una representación Unicode de una cadena seleccionada en el portapapeles (donde Unicode, en Windows, generalmente se mueve como UTF-16, pero eso no es importante) Cuando pegue en la otra aplicación, insertará esa secuencia de caracteres Unicode en el documento en el punto de selección.

Hay una aplicación flotando llamada "ClipSpy" que te ayudará a ver de lo que estoy hablando, interactivamente.

+1

+1 Así que un buen portapapeles intentará normalizar una versión de los caracteres a UTF-16/Unicode. –

+2

No estoy seguro de lo que quieres decir con eso. El portapapeles no * hace * nada, aparte de mantener algunos bytes que la aplicación puso ahí. El portapapeles actúa como un almacén de valores-clave, donde la clave es algo así como un tipo mimético, y el valor es un blob (que luego se interpreta según el tipo). –

+0

@ peter.murray.rust que es algo específico de Windows. Pero no soy un experto –

Cuestiones relacionadas