РЕДАКТИРОВАТЬ: простая возможность исключить, прежде чем перейти к более сложным решениям: вы пытались установить набор символов в utf8 в текстовом редакторе, в котором вы читаете файл? Это может быть просто случай, когда кто-то отправляет вам файл utf8, который вы читаете в редакторе с именем cp1252.
Если взять только два примера, это случай, когда utf8 читается через линзу однобайтовой кодировки, вероятно, iso-8859-1, iso-8859-15 или cp1252. Если вы можете публиковать примеры других проблемных символов, можно сузить это.
Поскольку визуальный осмотр символов может вводить в заблуждение, вам также необходимо взглянуть на нижележащие байты: на экране может отображаться § 0xa7 или 0xc2a7, и это будет определять тип преобразования набора символов, который у вас есть. делать.
Можете ли вы предположить, что все ваши данные были искажены одинаково - что они получены из одного и того же источника и прошли одну и ту же последовательность преобразований, так что, например, в вашем тексте нет ни одного é , это всегда? Если это так, проблему можно решить с помощью последовательности преобразований набора символов. Если вы можете более конкретно рассказать о среде, в которой вы находитесь, и о базе данных, которую вы используете, кто-то здесь, возможно, скажет вам, как выполнить соответствующее преобразование.
В противном случае, если проблемные символы встречаются только в некоторых местах в ваших данных, вам придется использовать их экземпляр за экземпляром, основываясь на предположениях в духе «ни один автор не намеревался вставить § в свой текст, поэтому всякий раз, когда вы видите это, замените на ". Последний вариант является более рискованным, во-первых, потому что эти предположения о намерениях авторов могут быть неверными, во-вторых, потому что вам придется определять каждый проблемный символ самостоятельно, что может быть невозможно, если слишком много текста для визуальной проверки или если оно написано на языке или системе письма, которые вам чужды.