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