我想保存在印地语Unicode格式的数据在我的数据库使用PHP。我已经向我的数据库连接页面添加了几行代码。
mysql_query('SET character_set_results=utf8');
mysql_query('SET names=utf8');
mysql_query('SET character_set_client=utf8');
mysql_query('SET character_set_connection=utf8');
mysql_query('SET character_set_results=utf8');
mysql_query('SET collation_connection=utf8_general_ci');我还在页面中添加了这一行,在这里我输入了Unicode数据,并将其显示为head属性。
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">但我的数据在数据库中存储为‘?’并且还以相同的格式显示。甚至连我的新行字符也被跳过了,数据显示在单行中。
发布于 2011-04-30 22:35:41
我怀疑您的数据库正在使用不同的字符集。确保使用create your database:
create database something -- or 'alter database something' in case it exists
default character set utf8
default collate utf8_general_ci目前,您只是告诉您的查询要以UTF-8编码,但是您的数据库可能仍在使用不同的字符集。
还要确保正确地输出这些数据,也是以UTF-8编码的。
发布于 2011-04-30 22:42:33
您可以在该页面中使用mysql_client_encoding检查数据库的编码:
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$charset = mysql_client_encoding($link);
echo "The current character set is: $charset";编码可能不是utf8,但您可以从命令行或phpMyAdmin等工具中使用mysql进行更改。
还请注意,根据php手册,mysql_set_charset比使用查询来设置字符集更可取。
发布于 2011-04-30 22:38:55
AFAIK SET names=utf8不正确,应为SET NAMES 'utf8'
https://stackoverflow.com/questions/5842368
复制相似问题