3

У меня есть странная проблема, с которой я сталкиваюсь уже много лет, начиная с Windows 8 (сейчас я на Windows 10, если я правильно помню. Проблема, кажется, только на моем рабочем компьютере. У моих других персональных компьютеров, похоже, нет проблем. Сначала я не думал о том, чтобы попросить о помощи, потому что нашел обходной путь, который я объясню позже, но я думаю, что этого достаточно.

По сути, всякий раз, когда я копирую и вставляю текст Unicode (японский, арабский и т.д.), Они отображаются в виде вопросительных знаков при вставке. Вот пример японского текста, который я скопирую:

何 こ れ?!意味 わ か な い!

И вот как это выглядит после вставки:

????!??????!

Интересно, что если я скопирую тот же самый текст снова хотя бы еще раз, он будет вставлен правильно ...

何 こ れ?!意味 わ か な い!

Удаление даже одного символа из выделения перед копированием приведет к "сбросу" проблемы.

Это был мой обходной путь. Это не так сложно сделать, но я всегда забываю это делать, потому что другие мои компьютеры работают нормально. Это добавляет больше шагов и тратит драгоценные секунды.

Проблема общесистемная и затрагивает все программы и приложения, которые я использую.

Любая идея, как это исправить навсегда? Любая помощь будет высоко оценена.

2 ответа2

1

Я "страдал" от этой проблемы в течение многих лет, и я никогда не знал, что решение было настолько просто, пока Санни не упомянул "локаль" в комментарии выше (Спасибо, Санни!). Ха-ха! В любом случае, вот как это исправить, если вы столкнулись с той же проблемой, что и я:

Это относится к Windows 10 (сборка 15002), но может быть похоже на более старые (или более новые) версии Windows.

  1. Зайдите в настройки региона в панели управления. Есть несколько способов сделать это, и вот некоторые из них.
    • В панели поиска (Cortana) на панели задач найдите "Панель управления". На панели управления нажмите « Изменить дату, время или числовые форматы» в разделе « Часы, язык и регион» в представлении категории или « Регион» в представлении списка значков.
    • Только для Windows 10: в строке поиска снова выполните поиск "регион и языковые настройки". Откроется страница "Регион и язык" в приложении "Настройки". Прокрутите вниз, пока не найдете Дополнительные настройки даты, времени и региона. Затем вы можете выбрать регион в открывшемся окне панели управления.
  2. Откройте вкладку « Администрирование » и нажмите кнопку « Изменить языковой стандарт системы». Выберите локаль, отличную от вашей текущей локали. Я пошел с японцами. Я думаю, что выбор языка, который вы будете копировать-вставлять часто, был бы лучшим, хотя он может быть одинаковым независимо. Подтвердите изменение с помощью OK.
  3. Система попросит вас перезагрузить компьютер, что вам, очевидно, нужно сделать, чтобы заметить изменения.
  4. После перезапуска проверьте, работает ли функция копирования-вставки должным образом. В случае успеха вы можете повторить описанные выше действия снова и переключиться обратно на язык, который вам действительно нужен.

Это оно! Наслаждайтесь копированием-вставкой! ;)

1

Все продукты Microsoft соответствуют Unicode. Нет смысла менять локаль, чтобы решить проблему.

????? указывает на то, что Unicode или UTF-8 не распознаются должным образом (вместо того, чтобы неправильно диагностироваться как другая кодировка (возможно, между программой и буфером обмена).

Но похоже, что это реальная ошибка - похоже, ОС впервые подумала, что это ASCII, но затем попробовала снова с UTF-8. Мир Unicode очень сложен - чтобы хранить полный Unicode в каждой возможной кодировке, вам потребуется удвоить пространство и преобразовать все ваши функции, чтобы они были совместимы с UTF-16 - огромное и не очень практичное занятие - представьте себе хранение и обработку, которые вам понадобятся чтобы конвертировать в UTF-16/32 - мы говорим о каждом документе, который вы имеете или просматриваете ... поэтому практически мы используем UTF-8, который кодирует стандартный UTF в 8-битный. Но устаревшие функции и документы на основе ASCII необходимо преобразовать в UTF-ASCII и т.д. Я догадываюсь, что здесь происходило то, что ОС неправильно «угадывала», что кодировкой была ASCII, и для копирования и вставки использовала отдельную функцию / класс (или функцию / класс по умолчанию). Как только он «понял» кодировку Unicode, он использовал эту кодировку. Хотя Unicode UTF-8 является стандартом, в среднем для каждой операционной системы приходится иметь дело примерно с 3-4 различными кодировками на язык, и, не зная заранее, что такое кодировка, - определить ее довольно сложно.

С точки зрения компьютера, ваш персонаж просто выглядит как предопределенный набор из 1 и 0, и нет никакого способа объективно узнать, каково правильное преобразование, что 01000001 является, например, буквой «А». Это также может быть א на иврите или какой-то другой персонаж. Unicode изменил все это - каждый символ имеет уникальное 8-битное назначение, что означает, что вы можете определить, на чем он основан, на диапазоне кодирования.

Таким образом, неправильное копирование и вставка, вероятно, связано с устаревшей функциональностью ASCII-обновления, и это должно решить проблему!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .