Intereting Posts
IP-адреса для блокировки, чтобы остановить автоматическое обновление WP? Функция разделения «the_tags» в 2 столбцах Получение языка в блоге (поле «lang_id» сайта в соответствии с настройкой WPLANG) Получает ли WP все post_meta на странице POST? update_options и уникальные имена файлов Как перечислить события по категориям и месяцам с помощью плагина Event Organizer? Вложенные условные обозначения Администратор WordPress сортирует по пользовательскому столбцу как я могу редактировать flexslider в woocommerce. Какой кран WordPress используется до регистрации данных сохраняется? Как проверить, существует ли вложение изображения перед загрузкой Массовое импортирование данных json в пользовательские поля (postmeta) Используя пользовательские типы сообщений, чтобы WordPress выглядел более похожим на CMS. Что нужно предпринять? Страницы или содержание? Создание пользовательского поиска для определенного типа сообщения Как получить плагин «статистика», который поставляется с блоком .wordpress.com?

Один для гуру: обновление до 3.x испортило только имена файлов с акцентированными символами

После обновления с 2.8.x (возможно, это было 2.9.x) до 3.1.2 все ссылки внутри сообщений на имена файлов (обычно изображения), которые содержат ударные символы, перестали работать.

Раньше имена файлов, которые отображаются в файловой системе типа «EXPRESSÃO.jpg», были бы правильно вызваны в HTML-сообщении после «EXPRESSÃO.jpg». WP 3.x решил преобразовать эти ссылки в «EXPRESSÃO.jpg» (это то, что было похоже на имя файла при создании / загрузке автором блога), поэтому теперь все изображения с такими символами являются неработающими ссылками.

ТОЛЬКО ссылки на имена файлов искажены. Все другие акцентированные тексты прекрасно работают. Я смог с помощью Perl-скрипта через SSH получить список всех файлов с особыми символами.

Tabel со всеми искаженными символами : http://pastebin.com/MMbjJphU (Кстати это таблица?)

wp-config показывает (да, я уже пытался их прокомментировать)

define('DB_CHARSET', ''); define('DB_COLLATE', ''); 

mySQL показывает :

 DB Collation in effect: latin1_swedish_ci default DB Collation: latin1_swedish_ci Tables Collation: latin1_swedish_ci Columns Collation: latin1_swedish_ci 

Каков самый быстрый способ решить эту проблему? от того, что я вижу, у меня есть 2 варианта:

A) Я мог бы переименовать файлы, чтобы использовать правильное написание (EXPRESSÃO.jpg -> EXPRESSÃO.jpg). Я склоняюсь к этому. Может быть, кто-то может помочь с скриптом php / perl / python, который переименовал бы файлы?

B) я мог бы обновить wp-сообщения в phpmyadmin, чтобы начать использовать все эти странные символы (EXPRESSÃO.jpg -> EXPRESSÃO.jpg).

Solutions Collecting From Web of "Один для гуру: обновление до 3.x испортило только имена файлов с акцентированными символами"

Возможно, вам стоит рассмотреть вариант C).
Преобразуйте все символы с акцентом в обычные символы UTF-8.
Итак, EXPRESSÃO.jpg -> EXPRESSAO.jpg

Я думаю, что это очень поможет вам не только в том случае, когда оно будет стоить кодирование и файловые системы, но и хранить имена / ссылки в базах данных.

Обновить

Это функция, которую я использую для удаления акцентов. Я нашел это решение где-то в Интернете.

  function sanitizeName($name) { $pattern = array("'é'", "'è'", "'ë'", "'ê'", "'É'", "'È'", "'Ë'", "'Ê'", "'á'", "'à'", "'ä'", "'â'", "'å'", "'Á'", "'À'", "'Ä'", "'Â'", "'Å'", "'ó'", "'ò'", "'ö'", "'ô'", "'Ó'", "'Ò'", "'Ö'", "'Ô'", "'í'", "'ì'", "'ï'", "'î'", "'Í'", "'Ì'", "'Ï'", "'Î'", "'ú'", "'ù'", "'ü'", "'û'", "'Ú'", "'Ù'", "'Ü'", "'Û'", "'ý'", "'ÿ'", "'Ý'", "'ø'", "'Ø'", "'œ'", "'Œ'", "'Æ'", "'ç'", "'Ç'"); $replace = array('e', 'e', 'e', 'e', 'E', 'E', 'E', 'E', 'a', 'a', 'a', 'a', 'a', 'A', 'A', 'A', 'A', 'A', 'o', 'o', 'o', 'o', 'O', 'O', 'O', 'O', 'i', 'i', 'i', 'I', 'I', 'I', 'I', 'I', 'u', 'u', 'u', 'u', 'U', 'U', 'U', 'U', 'y', 'y', 'Y', 'o', 'O', 'a', 'A', 'A', 'c', 'C'); $name = preg_replace($pattern, $replace, $name); return $name; } 

Поэтому, возможно, вы можете прочитать все файлы, очистить имена, используя эту функцию, и сохранить файлы с новым именем.

В конце концов, я отказался от акцентов, и теперь я конвертирую все акценты в HTML equvalant.So Abaeté; хранится как Abaeté в моей БД.

Существует несколько плагинов для WordPress, которые будут автоматически проходить через вашу базу данных и исправлять проблемы с кодировкой для UTF-8 и Unicode. Я считаю, что один из них устранит ваши проблемы.