Mysql
 sql >> база данни >  >> RDS >> Mysql

Проблем с кодирането на символи с PHP Simple HTML DOM Parser

@deceze и @Shakti благодаря за помощта.

+1 за връзката към статията, публикувана от deceze (Обработка на Unicode отпред към гръб в уеб приложение ) и също така си струва да прочетете Разбиране на кодирането

След като прочетох вашите коментари, отговор и, разбира се, тези две статии, най-накрая реших проблема си.

Изброих стъпките, които направих досега, за да разреша този проблем:

  1. Добавен header('Content-Type: text/html; charset=utf-8'); в горната част на моя файл init.php,
  2. Променен НАБОР СВОБОДА на полето на таблицата на моята база данни, което съхранява тези стойности в UTF-8,
  3. Задайте набор от знаци за MySQL връзка на UTF-8 mysql_set_charset('utf8', $connection_link_id);
  4. Използва функцията htmlentities() за преобразуване на знаци $meta_title = htmlentities(trim($meta_title_raw), ENT_QUOTES, 'UTF-8');

Сега проблемът изглежда е решен, НО все още трябва да направя следното, за да разреша този проблем ПЪЛНО.

  1. Вземете кодирания набор от знаци от изходния $source_charset .
  2. Променете кодирането на низа в UTF-8, ако вече не е в същото кодиране. За това единствената налична PHP функция е iconv() . Пример:iconv($source_charset, "UTF-8", $meta_title_raw);

За получаване на $source_charset Вероятно ще трябва да използвам някои трикове или мулти проверка. Като проверка на заглавки и мета маркер и т.н. Намерих добър отговор в Откриване на кодиране

Кажете ми, ако има някакви подобрения или някаква грешка в стъпките ми по-горе.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP превръща запетаята в <br />

  2. PDO – Невалиден номер на параметър

  3. Свържете mySQL с Android

  4. SQL LIKE % вътре в масива

  5. Microsoft SQL Server, еквивалент на MySQL REGEXP