25

Иногда я редактирую текст на английском языке, который включает символы Unicode. По какой-то причине на моем ПК Notepad++ преобразует символы Unicode в символы ???Тем самым портит текст и теряет все эти данные. Я ищу способ редактировать такой текст, сохраняя при этом символы Юникода. Я использую Consolas как мой шрифт. Если шрифт содержит не все эти символы, почему я должен потерять данные при копировании текста из Notepad++ (через буфер обмена Windows)?

6 ответов6

14

Проблема, описанная в вопросе, возникает, когда для пустого / нового документа установлено значение "ANSI", и в него вставляются символы Unicode .

При использовании с пустым / новым документом автоопределение отсутствует, по крайней мере, в той версии Notepad++, на которой я его тестировал. "ANSI" - это значение по умолчанию в Notepad++ для нового документа, если оно не задано в меню « Настройки» -> « Настройки» -> вкладка « Новый документ» / "Открыть каталог".

Решение

Решение состоит в том, чтобы установить кодировку в UTF-8 перед вставкой, меню Формат -> Кодировать в UTF-8:

Команда меню «Меню Формат / Кодировать в UTF-8», которая должна быть выполнена

пример

Я скопировал некоторый текст в новый документ Notepad++, русский (русский язык, русский язык), из Firefox, показывающий страницу Википедии на русском языке.

Если кодировка не изменилась с "ANSI", это результат:

Результат вставки строки Unicode «Русский (русский язык, русский язык») в новый документ Notepad++ без изменения кодировки по умолчанию «ANSI».

Если кодирование изменяется это результат:

Результат вставки строки Unicode "Russian (русский язык, русский язык") в новый документ Notepad++ после изменения кодировки по умолчанию "ANSI" на "UTF-8".

Как видно на рисунке ниже (выделена часть кириллицы ), Notepad++ фактически преобразует символы Unicode в ASCII 63 (hex 3F), вопросительные знаки. Вот почему символы Unicode теряются (в режиме "ANSI" ) при копировании текста через буфер обмена (это не проблема шрифта - информация теряется).

Снимок экрана шестнадцатеричного представления указанного документа

Проверено на: Notepad++ v5.4.5 (UNICODE).

14

Если файл фактически закодирован в Unicode, Notepad++ должен обнаружить его автоматически. Шрифт Consolas хорошо работает для меня. Вы можете попробовать один из этих двух вариантов меню:

  • Кодировка -> Кодировка в UTF-8
  • Кодировка -> Конвертировать в UTF-8

Я уверен, что первый сделает то, что вы хотите.

5

Есть хорошие новости и плохие новости.

Хорошие новости: Notepad++ поддерживает Unicode (по крайней мере, из того, что я могу собрать).

Плохие новости: очевидно, поддержка Unicode есть только в Windows XP.

У меня фактически нет машины Windows передо мной. Из того, что я помню, где-то есть меню Кодировка в меню Формат. Кодировка для Unicode на самом деле чаще всего UTF-8.

Вот «симпатичная» картина поддержки Unicode в Notepad++,

3

Юникод отлично работает на Windows 7. Единственная проблема, которая возникает, заключается в том, что вы должны перепечатывать символы, которые были изменены. Это случилось со мной. Я пишу скандинавскими буквами, так что ä -> E4, ö -> F6. Боль в заднице заменить их всех, но это того стоит.

Если вы кодируете страницу из ANSI -> UTF-8, тогда будут некоторые проблемы с символами.

Я бы посоветовал вам сначала создать новую страницу в UTF-8, а затем скопировать / вставить свою информацию. Тогда не будет никаких проблем.

1

Это работает для меня:

Я изменил шрифт на конфигуратор стиля Courier New на моем ПК (Windows 7 с набором символов английский / американский и румынский для набора не-Unicode). Работает с шрифтами Courier New и Tahoma + кодировка UTF-8.

0

В верхнем меню выберите « Encoding затем выберите « Encode in UTF-8 или « Encode in UTF-8 Without BOM после чего вы можете редактировать текст в кодировке Юникод.

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