Иногда я редактирую текст на английском языке, который включает символы Unicode. По какой-то причине на моем ПК Notepad++ преобразует символы Unicode в символы ???Тем самым портит текст и теряет все эти данные. Я ищу способ редактировать такой текст, сохраняя при этом символы Юникода. Я использую Consolas как мой шрифт. Если шрифт содержит не все эти символы, почему я должен потерять данные при копировании текста из Notepad++ (через буфер обмена Windows)?
6 ответов
Проблема, описанная в вопросе, возникает, когда для пустого / нового документа установлено значение "ANSI", и в него вставляются символы Unicode .
При использовании с пустым / новым документом автоопределение отсутствует, по крайней мере, в той версии Notepad++, на которой я его тестировал. "ANSI" - это значение по умолчанию в Notepad++ для нового документа, если оно не задано в меню « Настройки» -> « Настройки» -> вкладка « Новый документ» / "Открыть каталог".
Решение
Решение состоит в том, чтобы установить кодировку в UTF-8 перед вставкой, меню Формат -> Кодировать в UTF-8:
пример
Я скопировал некоторый текст в новый документ Notepad++, русский (русский язык, русский язык), из Firefox, показывающий страницу Википедии на русском языке.
Если кодировка не изменилась с "ANSI", это результат:
Если кодирование изменяется это результат:
Как видно на рисунке ниже (выделена часть кириллицы ), Notepad++ фактически преобразует символы Unicode в ASCII 63 (hex 3F), вопросительные знаки. Вот почему символы Unicode теряются (в режиме "ANSI" ) при копировании текста через буфер обмена (это не проблема шрифта - информация теряется).
Проверено на: Notepad++ v5.4.5 (UNICODE).
Если файл фактически закодирован в Unicode, Notepad++ должен обнаружить его автоматически. Шрифт Consolas хорошо работает для меня. Вы можете попробовать один из этих двух вариантов меню:
- Кодировка -> Кодировка в UTF-8
- Кодировка -> Конвертировать в UTF-8
Я уверен, что первый сделает то, что вы хотите.
Есть хорошие новости и плохие новости.
Хорошие новости: Notepad++ поддерживает Unicode (по крайней мере, из того, что я могу собрать).
Плохие новости: очевидно, поддержка Unicode есть только в Windows XP.
У меня фактически нет машины Windows передо мной. Из того, что я помню, где-то есть меню Кодировка в меню Формат. Кодировка для Unicode на самом деле чаще всего UTF-8.
Вот «симпатичная» картина поддержки Unicode в Notepad++,
Юникод отлично работает на Windows 7. Единственная проблема, которая возникает, заключается в том, что вы должны перепечатывать символы, которые были изменены. Это случилось со мной. Я пишу скандинавскими буквами, так что ä -> E4, ö -> F6. Боль в заднице заменить их всех, но это того стоит.
Если вы кодируете страницу из ANSI -> UTF-8, тогда будут некоторые проблемы с символами.
Я бы посоветовал вам сначала создать новую страницу в UTF-8, а затем скопировать / вставить свою информацию. Тогда не будет никаких проблем.
Это работает для меня:
Я изменил шрифт на конфигуратор стиля Courier New на моем ПК (Windows 7 с набором символов английский / американский и румынский для набора не-Unicode). Работает с шрифтами Courier New и Tahoma + кодировка UTF-8.
В верхнем меню выберите « Encoding
затем выберите « Encode in UTF-8
или « Encode in UTF-8 Without BOM
после чего вы можете редактировать текст в кодировке Юникод.