PHP MYSQL Insertar datos en idioma árabe

Estoy tratando de insertar algunos datos en árabe en MySQL usando PHP y un formulario HTML. Cuando inserto los datos en la tabla MYSQL, el campo de la tabla representa datos como مرØبا العالم

Pero cuando accedo a los mismos datos con PHP y los muestro en mi página web, se muestran los datos correctos. Estoy usando:

 http-equiv="Content-Type" content="text/html; charset=utf-8" 

meta en mi página web para mostrar datos en árabe. Mi pregunta es por qué mis datos se ven así: مرØبا العالم en la tabla MySQL, y cómo debería corregirlo.

Tienes que hacer las dos cosas siguientes:

  1. Asegúrese de que la encoding y la utf8_general_ci la base de datos sea utf8_general_ci (tanto para el campo en sí y la tabla como para la base de datos).
  2. Envíe dos comandos inmediatamente después de establecer una conexión a la base de datos:

     mysql_query("SET NAMES utf8;"); mysql_query("SET CHARACTER_SET utf8;"); 

Deberías usar esta línea:

 @mysql_query("SET NAMES 'utf8' "); 

Ver esta función:

 function _connect($user, $pass, $host) { $conn = mysql_connect($host, $user, $pass); if (!$conn) return false; @mysql_query("SET NAMES 'utf8' "); //more.... } 

No menciona la versión de MySQL que está utilizando, pero si utiliza 5.0.7 o posterior, según la documentación oficial de PHP :

Esta es la forma preferida de cambiar el juego de caracteres. No se recomienda usar mysql_query () para establecerlo (como SET NAMES utf8). Consulte la sección de conceptos del conjunto de caracteres de MySQL para obtener más información.

por ejemplo, suponiendo que está utilizando la extensión mysql_query.

  

Otras Consideraciones:

  • Los archivos que se utilizan deben estar codificados con UTF-8
  • La base de datos, la tabla y el campo deberían codificarse y usar la intercalación utf8_general_ci
  • Los encabezados de PHP y los encabezados de HTML también se deben establecer en UTF-8

Como nota al margen, se desaconseja el uso de la extensión mysql_query . En su lugar, se debe usar la extensión MySQLi o PDO_MySQL .

Consulte también MySQL: elegir una guía de API y preguntas frecuentes relacionadas para obtener más información.

prueba esto:

 @mysql_query("set global character_set_results=utf8"); 

Su base de datos debe ser compatible con utf8 . Prueba con utf8_general_ci o utf8_unicode_ci

Ahora PHP y MYSQL admiten cualquier idioma. Use esta función en la conectividad de la base de datos.

 $this->links = mysql_connect(DB_SERVER,DB_SERVER_USERNAME,DB_SERVER_PASSWORD); mysql_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'", $this->links); 

El campo de la tabla de la base de datos MYSQL debe ser Collation = utf8_general_ci