utf 8 – PHP y MySQLi UTF8

mi juego de mesa es utf8 y su intercalación es utf8. ahora 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 es:

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

¿que puedo hacer? Editar: reemplacé:

 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

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

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

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

El escenario: creación automatizada remota de una cuenta de usuario basada en una transacción exitosa / verificada de IPN PayPal. Mysqli Query crea datos de usuario y de 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 ninguna tabla DB existente. Básicamente esto garantiza que sus datos sean solo caracteres imprimibles en ASCII e incluso que usen $ mysqli-> set_charset (“utf8”); realmente no es tan importante ya que está preparando sus datos para ser procesados ​​y ingresados ​​como “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 = 'edward@ait-pro.com'; $domain = ''; $item = 'Test'; $create_ipn->execute(); 

Cuando recupere datos de la base de datos, no solo obtendrá los datos correctamente, sino que también deberá mostrarlos en las páginas correctamente, así que intente utilizar la encoding UTF-8 en el encabezado de su página:

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