w3schools utf8 name mysql_set_charset charset php character-encoding mysqli

name - utf 8-PHP y MySQLi UTF8



utf8 php (5)

mi tabla char set es utf8 y su compilación es utf8.now tengo este código:

$mysqli = new mysqli("localhost", "root", "", "Amoozeshgah"); if (mysqli_connect_errno()) { printf("Connect failed: %s/n", mysqli_connect_error()); } if (!$mysqli->set_charset("utf8")) { printf("Error loading character set utf8: %s/n", $mysqli->error); } else { printf("Current character set: %s/n", $mysqli->character_set_name()); } mysql_set_charset(''utf8''); if ($stmt = $mysqli->prepare("SELECT About_Title FROM Tbl_About WHERE About_Id=?")) { $city = 8; /* bind parameters for markers */ $stmt->bind_param("s", $city); /* execute query */ $stmt->execute(); /* bind result variables */ $result = $stmt->get_result(); /* fetch value */ while ($myrow = $result->fetch_assoc()) { // use your $myrow array as you would with any other fetch printf("%s is in district %s/n", $city, $myrow[''About_Title'']); print("shod"); }

pero fuera de lugar es:

Current character set: utf8 8 is in district نتمنتشس shod

¿que puedo hacer? Edición: he sustituido:

if (!$mysqli->set_charset("utf8")) { printf("Error loading character set utf8: %s/n", $mysqli->error); } else { printf("Current character set: %s/n", $mysqli->character_set_name()); } mysql_set_charset(''utf8'');

con

$mysqli->set_charset("utf8")

Pero no hay diferencia.


Al recuperar datos de la base de datos, no solo obtiene los datos correctamente, sino que también necesita mostrarlos en las páginas correctamente, así que intente utilizar la codificación UTF-8 en el encabezado de su página:

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

<meta charset="utf-8">

Ese es mi problema y solución, gracias a Rohit Kumar Choudhary.


Escenario interesante que puede ayudar a alguien más. No hay detalles / explicaciones técnicas y, en su lugar, solo una pulsación / pista en la dirección correcta.

El escenario: creación automatizada remota de una cuenta de usuario basada en una transacción exitosa / VERIFIED IPN PayPal. Mysqli Query crea datos de usuario y usuario, pero el valor de esos datos contiene caracteres de formato ocultos e invalida el uso de los datos llamados en el procesamiento de formularios. Solución muy simple sin cambiar / alterar las tablas DB existentes. Básicamente, esto garantiza que sus datos sean solo caracteres imprimibles en ASCII e incluso que usen $ mysqli-> set_charset ("utf8"); no es realmente tan importante ya que está preparando sus datos para ser procesados ​​e ingresados ​​"ASCII clean".

$create_ipn = $mysqli->prepare("INSERT INTO xxx_somewhere (some_ipn_parameter , email, domain, item) VALUES (?, ?, ?, ?)"); $create_ipn->bind_param("ssss", $some_ipn_parameter, $email, $domain, $item); $some_ipn_parameter = preg_replace( ''/[^/x01-/x7F]/'', "", ''the_actual_ipn_data'' ); $email = ''[email protected]''; $domain = ''''; $item = ''Test''; $create_ipn->execute();


Por favor reemplace mysql_set_charset(''utf8''); a $mysqli->set_charset("utf8") :-)


en su archivo php agregue lo siguiente en la parte superior de su código

header(''Content-Type: text/plain; charset=utf-8'');


or mysqli_set_charset($this->mysqli,"utf8"); mysqli_set_charset($conn,"utf8");