Estoy consultando una base de datos la cuál en alguna de sus tablas tiene valores con caracteres especiales, por ejemplo palabras de ciudades como: Bogotá, Medellín, etc...
Esto es lo que tengo hasta ahora:
- Mi base de datos tiene cotejamiento utf8_spanish_ci
- cuándo hago la conexión a mi base de datos la hago así:
$conn_str = "mysql:host={$this->db_host};port={$this->db_port};dbname={$this->db_name};charset=utf8"
$conn = new PDO($conn_str, $this->db_user, $this->db_pass, array(PDO::ATTR_PERSISTENT => true));
(estoy usando PDO).
- mi html tiene codifiación utf-8.
Sinceramente no se que mas intentar.
Esta es una imágen de la pestaña Network del navegador de la respuesta que obtengo de la consulta:
Y esta es una imagen para que vean las cabeceras de la respuesta que dice utf-8:
Que puede estar sucediendo aquí? sinceramente ya no se que mas intentar, también intente añadir esta línea AddDefaultCharset UTF-8
en el httpd.conf de apache y tampoco funcionó. alguien que sepa como puedo solucionar este problema? lo calificaría como positivo si pudiera ayudarme. Gracias de antemano.
NOTA:
Uso XAMPP, este así tengo mi archivo httpd.conf:
AddDefaultCharset UTF-8
# This is the main Apache HTTP server configuration file. It contains the
# configuration directives that give the server its instructions.
# See <URL:http://httpd.apache.org/docs/2.4/> for detailed information.
# In particular, see
# <URL:http://httpd.apache.org/docs/2.4/mod/directives.html>
# for a discussion of each configuration directive.
#
# Do NOT simply read the instructions in here without understanding
# what they do. They're here only as hints or reminders. If you are unsure
# consult the online docs. You have been warned.
#
# Configuration and logfile names: If the filenames you specify for many
# of the server's control files begin with "/" (or "drive:/" for Win32), the
# server will use that explicit path. If the filenames do *not* begin
# with "/", the value of ServerRoot is prepended -- so "logs/access_log"
# with ServerRoot set to "/usr/local/apache2" will be interpreted by the
# server as "/usr/local/apache2/logs/access_log", whereas "/logs/access_log"
# will be interpreted as '/logs/access_log'.
#
# NOTE: Where filenames are specified, you must use forward slashes
# instead of backslashes (e.g., "c:/apache" instead of "c:\apache").
# If a drive letter is omitted, the drive on which httpd.exe is located
# will be used by default. It is recommended that you always supply
# an explicit drive letter in absolute paths to avoid confusion.
#
# ServerRoot: The top of the directory tree under which the server's
# configuration, error, and log files are kept.
#
# Do not add a slash at the end of the directory path. If you point
# ServerRoot at a non-local disk, be sure to specify a local disk on the
# Mutex directive, if file-based mutexes are used. If you wish to share the
# same ServerRoot for multiple httpd daemons, you will need to change at
# least PidFile.
#
Define SRVROOT "C:/xampp/apache"
imagen de muestra:
el field 'Nombré' lo agregué para que vean que si se muestra el acento (pero esto es un valor local), mientras que en el field 'Ciudad' donde tiene el valor 'Bogotá' ese el que valor que viene de la Base de datos.
imagen: