我正在尝试将一些特定的文本从mysql返回到textarea。现在这个从mysql返回的文本有
collation=utf8_unicode_ci
并通过在我的php文件中添加此行来设置charset。
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-8-i" />
不能在这里找出问题所在。一切看起来都不错,但为什么textarea没有显示希伯来文字?而是显示“???????” - 问号。
感谢。
答案 0 :(得分:0)
在数据输入或检索期间,MySQL必须配置为接受unicode(UTF-8)数据。有很多方法,你可以这样做
将此行放在数据库连接部分
上mysql_set_charset('utf8',$link); //$link is your connection identifier
在CLI上运行charset utf8
SET NAMES 'utf8'
作为您对数据库的第一次查询此外,在屏幕上输出这样的数据时,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编码,除非您有其他原因不这样做。