Черные символы вызваны тем, что 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{D83D}\x{DE0A}
А затем для вопроса, который вы добавили в комментариях позже (это редактирование).
Есть ли какая-либо другая утилита, в которой я могу найти символы, которых нет в UTF8, в моем CSV-файле.
Теперь я показал, что символы в вашем файле - UTF-8. Однако, чтобы все же ответить на ваш вопрос, если вы хотите, чтобы инструмент вручную пытался найти кодировку некоторых символов, вы можете использовать этот веб-сайт. Здесь вы можете ввести некоторый текст, указать кодировку и преобразовать ее в другую кодировку, чтобы увидеть, на какие символы она отображается.