Chr*_*ris 10 html mysql utf-8 character-encoding
我使用MySQL 5.1并将一个大约2.7密耳行的UTF-8解码的txt文件加载到一个表中,该表本身被声明为utf8_unicode_ci,并且所有字段都被声明为utf8_unicode_ci,使用LOAD DATA INFILE...
在数据库本身,人物似乎都是正确的,一切看起来都不错.但是,当我使用php打印它们时,字符显示为???,尽管我在HTML头中使用utf-8声明:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
...
Run Code Online (Sandbox Code Playgroud)
在另一个表(使用utf-8)中,我从提交的表单中插入文本,这些字符在数据库中显得异常,但在我使用时打印出来时再次正确显示SELECT....
所以,我想知道:出了什么问题?是否UTF-8在数据库中正确显示字符或奇怪地显示字符,但SELECT再次显示它们时它们是否正常?或者问题在哪里(将文件加载到数据库中,在HTML中或其间的某个地方)?
非常感谢您的任何提示或建议!:)
DCo*_*der 11
注意:MySQL的utf8charset是有限的,它只支持BMP中不超过三个字节的Unicode字符.你应该使用utf8mb4而不是.
SET NAMES utf8SET NAMES utf8mb4Content-Type: text/html;charset=iso-8859-1,浏览器不同意哪个应该获胜).utf8与utf8mb4MySQL在哪儿而言).如果phpMyAdmin将您输入的数据显示为正确的Unicode文本,那么我的赌注是您SET NAMES utf8在连接后没有这样做.
连接到DataBase后尝试使用此类代码,但是您需要接收数据
$db->query('set character_set_client=utf8');
$db->query('set character_set_connection=utf8');
$db->query('set character_set_results=utf8');
$db->query('set character_set_server=utf8');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10724 次 |
| 最近记录: |