php - Php 和 MySQL 中的特殊字符

标签 php mysql html-entities

我在 PHP 中遇到了一些特殊字符的问题。我在 mysql (utf8_hungarian_ci) 中有一个表,其中包含一些带有特殊字符的文本,如 á、á、Ó、Ö、ö、ü,我想在我的页面上显示这些文本。我测试过:

$text = htmlentities($text); //to convert the simple spec chars
$search = array("& otilde;","&O tilde;","& ucirc;","&U circ;");
$replace = array("& #337;","& #336;","& #369;","& #368;");
$text = str_replace($search, $replace, $text);
echo $text;

但此代码仅在 $text 未从数据库中设置时才有效。如果我使用此代码并且我的 $text 是从数据库中选择的,它不会显示任何文本,如果我只使用: echo $文本;没有 htmlentities 和替换

我得到这样的字符:�

我知道有一些关于此的问题,我已经尝试接受答案,但它仍然不起作用,所以如果你愿意并且有时间请帮助我。不管怎样,谢谢你。祝大家有个美好的一天!

最佳答案

也可以尝试在标题中设置为使用 UTF-8 编码。

在您的 PHP 文件中,添加

header('Content-type: text/html; charset=utf-8'); 

同时在 <meta> 中将编码指定为 UTF-8标记,以确保您告诉浏览器。看看它是否解决了问题。

以及在您的 meta 中包含 UTF-8 编码标签。

<head>
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
...
</head>

编辑:

  1. 如果您有权访问 Apache 配置,请查看 AddDefaultCharset 是否设置为其他编码。
  2. 尝试使用 mysql_set_charset() (如果您使用的是 MySQLi,则为 mysqli_set_charset())。

关于php - Php 和 MySQL 中的特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15815252/

相关文章:

php - 从 mysql 检索 xml 文件并将其用作 php 的变量

python - 我不明白为什么我的 makemigrations 不能在 django 中工作,它显示以下错误

jquery - Laravel 路由中的 Ajax 调用返回包含 ChartJS 标签日期的 json 编码数组

mysql - 删除 Select 语句中的前 3 个字符

java - ASCII 到 HTML 实体在 Java 中转义

Javascript 撇号解码

php - 使用 Eloquent of Laravel 获取结果时,有没有办法使用主键作为索引?

php - 将变量从 PHP 传递到 JavaScript

php - 在MYSQL中返回基于纬度/经度匹配距离查询的行数?

php - 如何在mysql查询中检查字段条件