如何正确配置从PHP到MySQL再到浏览器的完整UTF-8支持,避免乱码?
```html
大家好!我是一名初学PHP开发者,已经为编码问题苦恼了两周。网站是俄语的,数据库是MySQL,似乎一切都配置好了,但从数据库输出数据到页面时,会出现问号或类似“Р РµСально?”的乱码。
以下是我连接数据库的方式:
文件保存为UTF-8无BOM格式,页面head中设置了``。但当我通过表单输入俄语文本并保存时,数据库显示正常,页面上却显示异常。而如果通过phpMyAdmin直接输入数据,页面显示正确。
我尝试将`cp1251`改为`utf8`,结果数据库乱了,页面正常。尝试`SET NAMES utf8mb4`,则完全失效。我哪里做错了?如何让俄语在所有地方都能正常工作:数据库、页面以及表单提交?是否有某种检查清单或完整解决方案? ```
以下是我连接数据库的方式:
```php
$db = new mysqli('localhost', 'user', 'pass', 'mydb');
$db->query("SET NAMES cp1251");
```文件保存为UTF-8无BOM格式,页面head中设置了``。但当我通过表单输入俄语文本并保存时,数据库显示正常,页面上却显示异常。而如果通过phpMyAdmin直接输入数据,页面显示正确。
我尝试将`cp1251`改为`utf8`,结果数据库乱了,页面正常。尝试`SET NAMES utf8mb4`,则完全失效。我哪里做错了?如何让俄语在所有地方都能正常工作:数据库、页面以及表单提交?是否有某种检查清单或完整解决方案? ```