XML字符编码重音问题

Coo*_*uke 3 php xml mysql character-encoding html-entities

我在处理项目时已经遇到过几次这个问题,我想知道是否有一个优雅的解决方案.

问题 我正在通过推特上的XML推送推文并将它们上传到我的数据库但是当我将它们输出到屏幕时我会得到这些字符:

"搬到杜塞尔多夫."或者también

如果我有俄文字符,那么我会得到很多丑陋的盒子.

我想要的是在一种编码下显示正确的原生口音.我认为使用UTF-8是可能的.

我在用什么

  • PHP,MYSQL

在读取XML文件后,我正在执行以下操作来清理数据:

    $data = trim($data);
    $data = htmlentities($data);
    $data = mysql_real_escape_string($data);
Run Code Online (Sandbox Code Playgroud)

我的数据库排序规则是:utf8_general_ci

网页字符集是:charset = UTF-8

我认为它可能与HTML实体有关,但我真的很感激一个在项目上全面运作的解决方案.

提前致谢.

Edo*_*odo 6

替换此行:

$data = htmlentities($data);
Run Code Online (Sandbox Code Playgroud)

有了这个:

$data = htmlentities($data, null, "UTF-8");
Run Code Online (Sandbox Code Playgroud)

这样,htmlentities()将仅保留有效的UTF-8字符.有关更多信息,请参阅htmlentities()的文档.