我的网站使用:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
这个元:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
我在phpMyAdmin中创建了我的数据库和表格,确保所有内容都设置为utf8_unicode_ci(表格,字段,数据库),甚至是连接整理。
当我使用PHP制作的标准表单将一些拉丁字符(重音符号,ñ和类似的东西)插入数据库时,它工作正常,我可以在我的网站中显示保存的数据没问题。但是,如果我去phpMyAdmin,所有的拉丁字符都搞砸了,就像ññ。
如果我尝试在phpMyAdmin中修复该数据,那么我的网站会错误地显示数据,并带有奇怪的符号 。
这个世界上我做错了什么?我一直在努力解决这个问题几个小时没有成功。
谢谢大家!
答案 0 :(得分:9)
正如@Artefacto所说,这可能是phpMyAdmin的本地问题。
如果phpMyAdmin正常(即设置为UTF-8)并且数据仍然显示奇怪,那么使用UTF-8查看您的数据库连接是否也是如此?
mysql_query("SET NAMES utf8")
(或者你用作数据库的任何东西) 如果不是,可能会有所帮助。
答案 1 :(得分:1)
如果phpMyAdmin显示ñññ
而不是ñññ
,那是因为它将UTF-8字节流解释为ISO-8859-1。所以你的数据库内容可能是正确的,phpMyAdmin只是以错误的方式显示它们。
我不熟悉该应用程序,但您可以强制浏览器将该页面读取为UTF-8(通常是View&gt; Encoding&gt; UTF-8)。
答案 2 :(得分:1)
http://www.mysqlperformanceblog.com/2007/12/18/fixing-column-encoding-mess-in-mysql/
我还有八个不同任务的链接,但这个网站阻止我保存它们......
“作为垃圾邮件防范机制,新用户最多只能发布一个超链接”
答案 3 :(得分:1)
mysql_query(“SET NAMES utf8”)解决了我的问题。
问题:在phpMyAdmin中正确显示字符,在HTML / PHP中显示错误。人物:â,等等
标题正常(utf8),phpmyadmin以正确的形式显示内容,但网站一直显示奇怪的问号字符(在黑钻石字符内)。
HTML code:
<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
解决方案:我已经在php中添加了(在任何其他查询之前):
mysql_query("SET NAMES utf8");
其他原因可能导致这种行为;这只是解决方案的一部分。您可能需要检查内容类型,Web服务器配置(httpd.conf),html lang / dir,charset等。但是,黑色菱形中的问号似乎更具体到此问题/解决方案,在其他情况下是显示2-3个奇怪的字符而不是你想要的字符。
答案 4 :(得分:0)
执行mysql_query("SET names 'utf8';");
后
您还需要转到mySQL并将排序规则定义为UTF-8!
这应该可以解决您的问题。
祝你好运!
答案 5 :(得分:0)
1-编辑文件:
my.ini(MsWindos)
my.cnf(GNU / linux)
2-查找[mysqld]条目并追加:
character-set-server = utf8
skip-character-set-client-handshake
整个视图应如下所示:
[mysqld]
port=3306
character-set-server = utf8
skip-character-set-client-handshake
3-重启MySQL服务!
答案 6 :(得分:0)
如果phpMyAdmin正常(即设置为UTF-8)并且数据仍然显示奇怪,那么看看您的数据库连接是否也使用UTF-8?
只需在 mysql_connect
行之后设置$con = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD) or die(mysql_error());
mysql_query("SET NAMES utf8");
:
ds <- luxTrans("D857.lux") #luxTrans the data
ds <- ds[ds[,1]>as.POSIXct("2013-06-24"),] # cut off the days when not active
ds$light <- log(ds$light) # log transform the data
答案 7 :(得分:0)
我遇到了同样的问题,终于找到了一种通过PHP函数mysqli_set_charset
检查和更改排序规则的优雅方法。以下代码必须包含在$conn
支票和$sql
查询之间:
if (!mysqli_set_charset($conn, "utf8")) {
printf("Error loading character set utf8: %s\n", mysqli_error($conn)); //optional row
die();
}
我在这里找到了解决方案:http://php.net/manual/en/mysqli.set-charset.php