在目前的情况下,我在phpmyadmin中插入一些意大利数据,当我在客户端问号(?)中显示相同的数据时出现
我存储在db
中的数据 Ditta giovane e dinamica, con esperienza pluridecennale nel settore, si avvale delle più innovative tecniche di modellazione associate alla tradizione artigianale orafa valenzana. Specializzata nella produzione di gioielleria classica, in particolare bracciali tennis e fedine éternelle, rivisitata nel disegno e curata nei particolari, adatta ad una clientela esigente.
使用pdo插入数据
答案 0 :(得分:2)
既然我们看到你想要意大利语而不是 itallic ,那么还有更多工作要做。
您只是指定使用PDO,但让我们看看我们是否无法找到适合您的解决方案。
<强>接头强>
将HTML和PHP标头中的字符集设置为UTF-8
PHP:header('Content-Type: text/html; charset=utf-8');
(PHP标题必须放在任何类型的输出(echo,空格,HTML)之前,因此将它放在文件的顶部应该确保)
HTML:<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
(HTML标题放在<head>
/ </head>
标记内)
<强>连接强>
您还需要在连接本身中指定字符集。在PDO中,它在对象本身中指定,如此
$handler = new PDO('mysql:host=localhost;dbname=database;charset=utf8', 'username', 'password');
请注意DSN中的charset=utf8
属性。
数据库和表格
您的数据库及其所有表格必须设置为UTF-8。请注意,charset 不与归类相同。
您可以通过为每个数据库和表格运行一次下面的查询(例如在phpMyAdmin中)来实现这一目标
ALTER DATABASE databasename CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE tablename CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
执行这些更改后,您需要再次插入数据,因为数据库中已存在的字符编码错误。可以创建一个脚本来执行此操作,但它可能会导致更多的工作,因此如果您有一个小型数据库,再次插入它可能会更快。