php / mysql – иностранные символы

У меня проблемы с отображением иностранных персонажей (персонажи с такими акцентами, как: é à ù ç и т. Д.)

Строка в базе данных выглядит так:

Name | Datatype | Charset title | varchar(255) | utf8_general_ci 

Я храню его вот так:

 function inputFilter($var) { $var = trim(htmlentities(strip_tags($var))); if (get_magic_quotes_gpc()) $var = stripslashes($var); $var = mysql_real_escape_string($var); return $var; } $title = inputFilter($_POST['title']); 

и я печатаю его так:

 print $getfromdb['title']; 

Вот как это напечатано:

 Português //Should be: Português 

Я попытался добавить в печать: htmlspecialchars, utf8_decode / encode и htmlentities, хотя ничего не помогает!

Я добавил это в заголовок:

 <meta charset="utf-8"> 

Что я делаю не так?

Related of "php / mysql – иностранные символы"

Шаги к следующему:

Используйте метатег для UTF8.

 <meta http-equiv="content-type" content="text/html; charset=utf-8" /> 

Установите PHP для использования UTF8.

 mb_internal_encoding('UTF-8'); mb_http_output('UTF-8'); mb_http_input('UTF-8'); 

Для mysql вы хотите преобразовать таблицу в UTF8.

 ALTER TABLE table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci 

Также вы можете запустить:

  SET NAMES UTF8 

как первый запрос после установления соединения, которое преобразует ваше соединение с DB в UTF8.

Включить mysqli_set_charset($link, "utf8"); сразу после каждого подключения, которое вы делаете. Это сработает.

Попробуй это:

 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 

<meta charset="UTF-8"> является HTML 5 (и, BTW, UTF-8 имеет верхний регистр)

Поскольку похоже, что ваша тестовая цепочка также включает форму (из-за $_POST ), вы должны убедиться, что для формы также установлена ​​кодировка UTF-8.

Используйте SET NAMES utf8 перед запросом / вставкой в ​​базу данных

 query("SET NAMES utf8"); 

Вы должны использовать кодировку символов как ISO-8859-1 вместо UTF-8 следующим образом:

 <meta charset="ISO-8859-1"> 

Символы, которые вы пытаетесь показать, являются латинскими и UTF-8 то есть кодировка UNICODE не может интерпретировать латинские символы.

Справка

А в случае с mysql вы должны использовать latin1 кодировку.