Определить кодировку неизвестных символов в Notepad ++ и найти / заменить

2962
user2068804

У меня есть файл CSV, в котором я вижу следующую выдержку:

screenshot

Я нашел эти «черные» символы, прокручивая файл. Файл огромный (32 Мб). Я не уверен, в какой кодировке находится файл; На данный момент мой Блокнот ++ установлен на «Кодирование в UTF-8» . Кроме того, когда я пытаюсь сделать ASCII -> HEX (Плагины-> Конвертер-> ASCII -> HEX), я получаю следующий вывод:

EDA0BDEDB88A 

Я бы хотел знать:

  • Кодировка этих черных символов.
  • Регулярное выражение для поиска похожих случаев в моем файле CSV
1

1 ответ на вопрос

2
Wouter

Черные символы вызваны тем, что Notepad ++ не может отобразить эти последовательности байтов в конечную точку UTF-8, которую можно визуализировать. Как вы, возможно, знаете, каждый символ хранится в виде серии байтов. В этом случае эти байты

В шестнадцатеричном

ED A0 BD ED B8 8A 

В двоичном

1110 1101 1010 0000 1011 1101 1110 1101 1011 1000 1000 1010 

Это подводит нас к вашим вопросам.

Какова кодировка этих черных символов?

Это два символа UTF-8. Более конкретно, первый ED A0 BD- это то, что называют «высоким суррогатом», второй ED B8 8A- «низким суррогатом» . Вместе они образуют суррогат UCS . Теперь, когда мы знаем, что это суррогатные символы, мы можем изменить расчет суррогатных пар .

Если вы посмотрите эти последовательности байтов в таблице кодовых точек UTF-8, то обнаружите, что первая соответствует, U+D83Dа вторая - U+DE0A. Следовательно, пара D83D + DE0A. Это соответствует U + 1F60A, который ..... барабанная дробь Смайлик !

Итак, последовательность, на которую вы смотрите ... это смайлик.

Регулярное выражение для поиска этих символов

Теперь, когда мы знаем это, мы можем использовать регулярные выражения, чтобы найти последовательности, подобные этой:

\x\x 

А затем для вопроса, который вы добавили в комментариях позже (это редактирование).

Есть ли какая-либо другая утилита, в которой я могу найти символы, которых нет в UTF8, в моем CSV-файле.

Теперь я показал, что символы в вашем файле - UTF-8. Однако, чтобы все же ответить на ваш вопрос, если вы хотите, чтобы инструмент вручную пытался найти кодировку некоторых символов, вы можете использовать этот веб-сайт . Здесь вы можете ввести некоторый текст, указать кодировку и преобразовать ее в другую кодировку, чтобы увидеть, к каким символам она относится.

Есть ли какая-либо другая утилита, в которой я могу найти символы, которых нет в UTF8, в моем CSV-файле. Пожалуйста, дайте мне знать user2068804 6 лет назад 0
Я понял! :) Проверьте мою правку. Последовательность, на которую вы смотрите, это смайлик! Задача решена. Дело закрыто. Wouter 6 лет назад 0

Похожие вопросы