Textarea没有显示来自mysql的希伯来语文本

时间:2012-03-09 13:44:51

标签: mysql character-encoding textarea hebrew

我正在尝试将一些特定的文本从mysql返回到textarea。现在这个从mysql返回的文本有

    collation=utf8_unicode_ci 

并通过在我的php文件中添加此行来设置charset。

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

不能在这里找出问题所在。一切看起来都不错,但为什么textarea没有显示希伯来文字?而是显示“???????” - 问号。

感谢。

2 个答案:

答案 0 :(得分:0)

在数据输入或检索期间,MySQL必须配置为接受unicode(UTF-8)数据。有很多方法,你可以这样做

  1. 将此行放在数据库连接部分

    mysql_set_charset('utf8',$link); //$link is your connection identifier
    
  2. 在CLI上运行charset utf8

  3. 使用SET NAMES 'utf8'作为您对数据库的第一次查询

  4. 此外,在屏幕上输出这样的数据时,html也应配置为理解unicode字符。使用

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

    在显示页面的顶部。

答案 1 :(得分:0)

尝试此设置。

    //  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

请记住对显示/返回mysql输出的网页进行编码。默认情况下,默认情况下在所有网页上声明utf-8编码,除非您有其他原因不这样做。