Специальные символы PHP


Хорошо, сегодня я пришел с небольшой проблемой, которая заключается в этом

echo $consulta;

на что он отвечает мне:

SELECT SUM(carrito_cant) as cantidad FROM carrito_tb WHERE carrito_folio='3041M�Ra' and carrito_NP='NA';

я возвращаю символ или заменяю его на � уже попробуйте

$consulta = utf8_encode ( $consulta );

также с этими двумя:

header('Content-type: text/html; charset=utf-8');
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

но, конечно, никто не бросает меня

SELECT SUM(carrito_cant) as cantidad FROM carrito_tb WHERE carrito_folio='3041MóRa' and carrito_NP='NA';
Author: Ing. Marquez Adam, 2016-02-09

3 answers

Было бы неплохо, если бы вы могли включить свой способ подключения, так как если бы вы использовали PDO, вам пришлось бы сделать это так:

$pdo = new Conexion();
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->exec("SET CHARACTER SET utf8"); // <--utf8

В случае, если вы сделаете это по-старому, это будет так:

$conexion = mysql_connect($dbhost, $dbusuario, $dbpassword);
mysql_query("SET character_set_results = 'utf8', character_set_client ='utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'", $conexion);
mysql_select_db($db,$conexion);

С mysqli будет

<?PHP

@ $db = new mysqli(localhost, "root", "", "biblioteca");

if ($db->connect_error)
    die('Error de Conexion ('.$db->connect_errno.')'.$db->connect_error);

echo "Conexion correcta con la base de datos...".$db->host_info;
echo "Utilizando un charset, por defecto, de tipo: ".$db->character_set_name()";
$db->set_charset('utf8');

echo "Utilizando un nuevo charset de tipo: ".$db->character_set_name();
$db->close();

?>

И, конечно же, проверить, была ли база данных создана с character = utf8 и collation = utf8_general_ci так же, как конкретная таблица, к которой вы запрашиваете.

 5
Author: Eduardo Munizaga, 2016-02-09 23:57:00

Несколько вариантов этой проблемы, по-видимому, вы пробовали

А) с помощью метода utf8_encode()

B) добавить заголовок с charset для utf-8 :

<?php header('content-type: text/html; charset=utf-8');

Я рекомендую вам в качестве третьего варианта Сохранить файл php с кодировкой utf-8.

 2
Author: Jorgesys, 2016-02-10 05:13:22

Моя проблема была решена с помощью этой команды при подключении к базе данных:

$connect = new PDO(
    "mysql:host=$host;dbname=$db",
    $user,
    $pass,
    array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
 0
Author: Edgar Conrado, 2016-12-05 23:19:45