Подтвердить что ты не робот

Как "вырезать и вставлять" влияет кодировка символов и что может пойти не так?

У меня есть документ A в кодировке A, отображаемый в инструменте A, и документ B в кодировке B, отображаемый в инструменте B. Если я вырезаю и вставляю (часть) B в A, что может быть результирующей кодировкой символов? Я понимаю, что это зависит от инструмента A и инструмента B и информации, хранящейся в буфере пасты (который предположительно может содержать кодировку?) И операционной системы.

Что должны делать высококачественные инструменты? и на практике, сколько из общих инструментов (например, Word, TextPad, различных IDE и т.д.) делают хорошую работу?

4b9b3361

Ответ 1

Прежде всего, внутреннее представление текста в текстовом редакторе не влияет на то, как текст кодируется (сериализован) при сохранении файла. Таким образом, документ не находится в кодировке; это последовательность абстрактных символов. Когда документ сохраняется в файле (или передается по сети), он получает кодировку.

Для каждого приложения нужно решить, что он помещает в буфер обмена. Как правило, приложение Windows, которое знает, что он делает, помещает в буфер обмена несколько разных представлений. Когда вы вставляете другое приложение, приложение будет искать представление, которое наилучшим образом соответствует его потребностям.

В вашем случае текстовый редактор (который знает, что он делает) помещает представление Unicode выбранной строки в буфер обмена (где Unicode в Windows обычно перемещается как UTF-16, но это не важно), Когда вы вставляете другое приложение, он вставляет эту последовательность символов Юникода в документ в точке выбора.

Там есть приложение, плавающее вокруг "ClipSpy", которое поможет вам понять, о чем я говорю, в интерактивном режиме.