Textarea no muestra texto hebreo de mysql

Estoy tratando de devolver un texto particular de mysql a un área de texto. Ahora este texto que regresa de mysql tiene

    collation=utf8_unicode_ci 

y el conjunto de caracteres se establece agregando esta línea en mi archivo php.

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

No puedo resolver el problema aquí. Todo se ve bien, pero ¿por qué el área de texto no muestra texto en hebreo? En su lugar, muestra "???????" - Signos de interrogación.

Gracias.

preguntado el 09 de marzo de 12 a las 13:03

¿Está configurada su conexión mysql en UTF8 (ESTABLECER NOMBRES 'uft8')? ¿Su documento HTML está codificado en UTF-8? -

Lo siento, no sé cómo configurar una conexión mysql a utf8. ¿Podría por favor aclarar eso? -

Su primera consulta después de conectarse a la base de datos debe ser SET NAMES 'uft8' -

mezclar/combinar conjuntos de caracteres como ese simplemente corromperá las cosas. Debe mantener el MISMO juego de caracteres durante toda la canalización. -

2 Respuestas

Durante la entrada o recuperación de datos, MySQL debe configurarse para aceptar datos Unicode (UTF-8). Hay un número de maneras, usted puede hacer esto

  1. Coloque esta línea en la parte de conexión de la base de datos

    mysql_set_charset('utf8',$link); //$link is your connection identifier
    
  2. Ejecutar charset utf8 en CLI

  3. Utilice la herramienta SET NAMES 'utf8' como su primera consulta a la base de datos

Además, al mostrar dichos datos en la pantalla, el html también debe configurarse para comprender los caracteres Unicode. Usar

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

En la parte superior de la página de visualización.

respondido 09 mar '12, 14:03

después de poner mysql_set_charset muestra caracteres que se parecen a § × × ¤ © × § ¦ ¢ , - Prateek

@Prateek, las metaetiquetas, deberían ser las correctas. Utilizar este <meta content="text/html; charset=utf-8" http-equiv="Content-Type" /> en la parte superior de la página - estrellax

Prueba esta configuración.

    //  encode web page 'utf-8' which holds the input form
<!DOCTYPE html> 
<html lang="en"><head><meta charset="utf-8">

//  Form submit from webpage 
$text = stripslashes($_POST['text']);

//  connect to database         
$db = mysql_select_db("$my_databasename",$conn)
    or die("ERR; Database");

//  setup UTF-8 on pipe 
mysql_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'", $conn);

mysql_query("SET NAMES 'UTF8'");

$text = mysql_real_escape_string($text);

// insert to mysql here

Recuerde codificar la página web que muestra/devuelve la salida de mysql. Es una buena práctica declarar la codificación utf-8 en todas las páginas web de forma predeterminada, a menos que tenga otra razón para no hacerlo.

Respondido 04 Abr '12, 23:04

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.