加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 来自MySQL数据库的字符的UTF-8问题(例如éasé)

发布时间:2020-12-13 16:23:39 所属栏目:PHP教程 来源:网络整理
导读:我知道有关于UTF-8问题的数百个问题,但我尝试了所有我能找到的方法,但没有一个有帮助. 事实: 我正在尝试从MySQL数据库中读取包含é的字符串并将其显示在PHP页面上.实际上,它显示为é(但字体不能识别它,因此使用另一种默认字体).当我想使用PHP函数将字符串转
我知道有关于UTF-8问题的数百个问题,但我尝试了所有我能找到的方法,但没有一个有帮助.

事实:
我正在尝试从MySQL数据库中读取包含é的字符串并将其显示在PHP页面上.实际上,它显示为é(但字体不能识别它,因此使用另一种默认字体).当我想使用PHP函数将字符串转换为文件名以进行字符串替换时,出现了麻烦. PHP根本不认为这是é字符.

这是我正在做的事情的快速概述:

1)String存储在MySQL数据库中. MySQL服务器设置是:
MySQL连接排序规则utf8_unicode_ci
MySQL charset:UTF-8 Unicode(utf8)
数据库本身设置为collat??ion utf8_unicode_ci(MyISAM存储引擎,由于共享服务器而无法更改)
实际表设置为collcation utf8_unicode_ci(InnoDB存储引擎)

é在phpMyAdmin中正确显示.数据通过Java程序插入到数据库中,但我也尝试使用手动输入的数据(在phpMyAdmin中输入).

2)PHP default_charset未设置(NO VALUE),我在共享服务器上并且放置手动覆盖php.ini似乎不起作用.使用ini_set(“default_charset”,’utf-8′);有效,但对我遇到的问题没有影响.

3)在运行实际的选择查询之前,我查询SET NAMES’utf8′.查询本身是无关紧要的但是对于测试我选择了一个简单的SELECT标题FROM items WHERE item_id = 1

4)PHP文件本身编码为UTF-8.我使用< meta http-equiv =“content-type”content =“text / html; charset = utf-8”/>为html设置了正确的字符集.

5)为了测试问题,我在返回的字符串(Astérix)上使用了htmlentities,检查源代码将其转换为Ast& Atilde;& copy; rix当然不正确.因此,字符串在浏览器中显示为Ast??rix.

可能的原因是什么?对我来说,似乎我设置了所有可以设置为UTF-8的东西.

解决方法

http://php.net/manual/en/ref.mbstring.php – 查看多字节字符串函数.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读