use*_*068 2 html php mysql encoding utf-8
我有一个非常奇怪的问题,无法弄清楚.我正在使用notepad ++,如果我将文件保存为带有希腊字符的文件(字符不是来自数据库),它会在Web浏览器中显示希腊字符作为问号但是如果我将相同的字符文件保存为.html则会正确显示字符.
如果从数据库显示希腊字符,它会正确显示它们而不会出现问题 它也无法在我的共享主机上正常工作,但在我的localhost上工作正常.
我试图以不同的编码保存.php文件,但仍然是同样的问题.我也尝试用utf-8添加php header()和meta标签,但没有运气.
可能是什么问题?谢谢
即使听起来很奇怪你的mysql数据输出正确,因为php字符串编码失败,我尝试解决你的问题的方法,就是将问题分解成试图识别这个错误编码产生的步骤!
首先,你应该尝试设置你default_charset到utf-8php.ini文件,它是这样做内:
default_charset = "utf-8";
Run Code Online (Sandbox Code Playgroud)
如果由于提供程序限制而无法执行此操作,则仍可以使用ini_set函数在运行时更改该值!
您还需要确保将Web服务器设置为输出utf-8编码文件!在Apache中,这可以在httpd.conf中或使用htaccess文件中完成:
AddDefaultCharset UTF-8
Run Code Online (Sandbox Code Playgroud)
此时如果一切都失败了,仍然......尝试使用php标头和相对的html字符集:
<?php header("content-type: text/html;charset=utf-8") ?>
<!doctype>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<?php echo "? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?" ?>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
但是,非常重要的是,您的文件也使用适当的编码保存(utf-8几乎总是更好的选择,它有助于防止相当多的问题).如果你保存的编码不同于utf-8的文件,请从旧内容中删除一个新的文件.有时编辑器在创建文件后无法正确切换编码,即使记事本++通常在这方面做得很好; 只是使用converto to不是encode in功能!
如果它仍然不起作用,虽然我希望它现在可以,你可以查看一些其他PHP替代品,如mb_detect_encoding,mb_convert_encoding,htmlentities和htmlspecialchars,以解决问题!