Lo recomendable o ideal es que revises todas tus codificaciones. Tanto en la base de datos,en las tablas, en los archivos, conexiones, como en el código html que generes y cualquier otra parte que pueda estar implicada. Todas deberían de estar funcionando bajo la misma codificación de caracteres. Para evitar este tipo de errores entre otros.
En cuanto a estableces la codificación en ut8 de la conexión si es esta la que utilizas, se puede hacer con la sentencia que mostrabas, en tu caso utilizando la librería adecuada
Prueba asi, me he tomado la libertad de hacer unos pequeños cambios a la calse
Código PHP:
class Conectar {
protected $_servidor = 'localhost';
protected $_usuario = 'root';
protected $_pass = '';
protected $_basedatos = 'nombre_mi_bbdd';
public function ConectarBbdd(){
$con = mysqli_connect($this->_servidor, $this->_usuario, $this->_pass, $this->_basedatos);
if (mysqli_connect_errno($con)){
echo "Lo siento pero no conecta a la BBDD: " . mysqli_connect_error($con);
return;
}
if (!mysqli_set_charset($con, "utf8")) {
printf("Error al establecer el conjunto de caracteres utf8: %s\n", mysqli_error($link));
return;
}
return $con;
}
} //fin de Conectar
si aun asi sigues sin poder estblecer el conjunto de caracteres en utf8
prueba asi
Código PHP:
class Conectar {
protected $_servidor = 'localhost';
protected $_usuario = 'root';
protected $_pass = '';
protected $_basedatos = 'nombre_mi_bbdd';
public function ConectarBbdd(){
$con = mysqli_connect($this->_servidor, $this->_usuario, $this->_pass, $this->_basedatos);
if (mysqli_connect_errno($con)){
echo "Lo siento pero no conecta a la BBDD: " . mysqli_connect_error($con);
return;
}
if (!mysqli_set_charset($con, "utf8")) {
printf("Error al establecer el conjunto de caracteres utf8: %s\n", mysqli_error($link));
return;
}
mysqli_query($con, 'SET NAMES utf8') or die(mysql_error());
mysqli_query($con, 'SET CHARACTER SET utf8') or die(mysql_error());
mysqli_query($con, 'SET COLLATION_CONNECTION="utf8_general_ci" ') or die(mysql_error());
return $con;
}
} //fin de Conectar