У меня есть строка, хранящаяся в MySQL, как это: یکی از Ø где набор символов моей таблицы – utf8 а сортировка – utf8_general_ci . 
  Когда я извлекаю строку из MySQL, браузер показывает ее так: یکی از بهترین راه и все в порядке (это персидский язык). 
Заметка:
  Я использовал mysql_query("SET NAMES 'utf8_persian_ci'");  после подключения к MySQL. 
  Я положил <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> тег в начало каждой страницы. 
  Теперь мне нужно использовать mysql_query("SET NAMES 'utf8'");  , 
  Но после его использования браузер показывает такую строку: یکی از Ø (так же, как и в MySQL). 
Как я могу изменить мои сохраненные записи MySQL и решить мою проблему? Или использовать некоторый код PHP для преобразования выходной кодировки?
  Ваша проблема в том, что ваша команда SET NAMES 'utf8_persian_ci' была недопустимой (utf8_persion_ci – это сортировка , а не кодировка ).  Если вы запустите его в терминале, вы увидите сообщение об ошибке Unknown character set: 'utf8_persian_ci' .  Таким образом, ваше приложение, когда оно хранило данные, использовало набор символов latin1 .  MySQL интерпретировал ваш вход как символы latin1, который затем сохранил в виде utf-8.  Аналогично, когда данные были отброшены, MySQL преобразовал его из UTF-8 в latin1 и (надеюсь, большую часть времени) исходные байты, которые вы ему дали. 
Другими словами, все ваши данные в базе данных полностью перепутаны, но просто так получилось.
Чтобы исправить это, вам нужно отменить то, что вы сделали. Самый простой способ – использовать PHP:
SET NAMES latin1; SET NAMES utf8;   В качестве альтернативы вы можете выполнять эти шаги внутри MySQL, но это сложно, потому что MySQL понимает, что данные находятся в определенном наборе символов.  Вам нужно изменить текстовые столбцы на тип BLOB, а затем изменить их обратно в текстовые типы с помощью набора символов utf8.  См. Раздел внизу документации ALTER TABLE MySQL с надписью «Предупреждение» красным цветом . 
  После того, как вы выполните одно из этих действий, байты, хранящиеся в столбцах базы данных, будут фактическим набором символов, который, по их утверждению, является.  Затем убедитесь, что вы всегда используете mysql_set_charset('utf8') для любого доступа к базе данных с PHP, который вы можете делать в будущем!  В противном случае вы снова испортите вещи.  (Обратите внимание: не используйте простую mysql_query('SET NAMES utf8') ! Существуют угловые случаи (например, соединение для сброса), где это можно сбрасывать на latin1 без вашего ведома. mysql_set_charset() будет устанавливать кодировку, когда это необходимо.) 
  Было бы лучше, если бы вы переключились с функций mysql_* и использовали PDO вместо этого с параметром charset=utf8 в вашем PDO dsn . 
Вероятно, вам нужно изменить столбец Charset и Collation.
Попробуйте выполнить этот запрос:
 ALTER TABLE `YOUR_TABLE_NAME` CHANGE `YOUR_COLUMN_NAME` `YOUR_COLUMN_NAME` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL 
(В примере я предположил, что VARCHAR имеет значение DEFAULT NULL VALUE)
Если это сработает для вас, вы можете вставить в свой файл my.conf код ниже, чтобы сделать utf8 по умолчанию:
 default-character-set = utf8 
Возможные решения: