ÆØÅ 字母随机被 æÃ~Ã¥ 替换
Posted
技术标签:
【中文标题】ÆØÅ 字母随机被 æÃ~Ã¥ 替换【英文标题】:ÆØÅ Letters randomly being replaced by æØå 【发布时间】:2013-06-15 07:03:47 【问题描述】:是的,当加载/刷新调用某些值的 php 页面时,ÆØÅ 被随机替换为 æØå 时遇到问题...
在我添加之前它运行良好
$Filename = preg_replace("/[^a-zA-Z0-9]/", "", $Filename);
但这会导致脚本删除 .在文件扩展名中,所以我删除了代码。现在它在加载/刷新时随机替换字母
$Filename=$_FILES['Filename']['name'];
$Description=$_POST['Description'];
$Contact=$_POST['Contact'];
$Time = gmdate('Y-m-d H:i');
$Title=$_POST['Title'];
$Filename = preg_replace("/[^a-zA-Z0-9]/", "", $Filename);
if(move_uploaded_file($_FILES['Filename']['tmp_name'], $target))
echo "Filen ". basename( $_FILES['Filename']['name']). " er nå lagt til blant Alta Botanikkforeningens funn.";
mysql_connect("localhost", "root", "") or die(mysql_error()) ;
mysql_select_db("altabotanikk") or die(mysql_error()) ;
mysql_query("INSERT INTO picture (Filename,Description,Contact,Time,Title)
VALUES ('$Filename', '$Description', '$Contact', now(), '$Title')") ;
else
echo "Det skjedde noe galt her :/";
由于它是随机的并且没有任何错误,我不知道是什么原因造成的。
html 声明 UTF-8
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
【问题讨论】:
你的mysql连接不知道你想用UTF8说话 确保你对mysql和html都使用了正确的编码。 @Basje Nono,在我添加上述代码 sn-p 之前,它 100% 的时间都正常工作 @HanletEscaño 我对 MySQL 和 PHP 文档使用 UTF-8 @TheLastMelody 不同的浏览器会发生同样的情况吗?我想知道奇怪的字符是否被缓存了。 【参考方案1】:您确定您的 MySQL 连接始终是 UTF8 吗?
mysql_connect("localhost", "root", "") or die(mysql_error()) ;
// make sure we're in UTF8 mode!
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");
// continue
mysql_select_db("altabotanikk") or die(mysql_error()) ;
然后从那里拿走?
即使您的 HTML 有一个用于字符集 utf8 的 meta
标签,您也需要做更多的工作。顺便说一句,html5(而不是现在已经过时的 html4.01)的新格式是:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
...
</head>
<body>...</body>
</html>
mysql connection 还需要被告知一切都是UTF8 格式。然后,为了更好地衡量,您还希望确保您的脚本本身(.php 文件)保存为 unicode 文件,因为是的,这也会把事情搞砸(有趣的时候!)
【讨论】:
谢谢,这导致“随机”问题消失,现在它只显示奇怪的字符,所以现在我只需要更正数据库中的字符,谢谢^_^以上是关于ÆØÅ 字母随机被 æÃ~Ã¥ 替换的主要内容,如果未能解决你的问题,请参考以下文章