我在使用 php 将某些字符输入到 mysql 数据库时遇到了一些问题。我正在做的是将用户输入的文本提交到数据库。我无法弄清楚我需要更改什么才能允许将任何类型的字符放入数据库并通过 php 打印出来,就像它想象的那样。
我的 MySQL 排序规则是:latin1_swedish_ci
就在我将文本从表单发送到数据库之前,我对数据使用 mysql_real_escape_string() 。
下面的例子
本文:
�People are just as happy as they make up their minds to be.�
� Abraham Lincoln
应该看起来像这样:
“People are just as happy as they make up their minds to be.”
― Abraham Lincoln
正如其他人提到的,如果你想支持“特殊”字符,你需要从头到尾转换为UTF8。这意味着您的网页、PHP、mysql 连接和 mysql 表。网页相当简单,只需使用UTF8的meta标签即可。理想情况下,您的标头也会显示 UTF8。
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
将 PHP 设置为使用 UTF8。无论如何,事情可能会起作用,但这样做是一个很好的措施:
mb_internal_encoding('UTF-8');
mb_http_output('UTF-8');
mb_http_input('UTF-8');
对于mysql,您想将表转换为UTF8,无需导出/导入。
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8
您可以而且应该将 mysql 配置为默认 utf8。但您也可以运行查询:
SET NAMES UTF8
作为建立连接后的第一个查询,这会将您的数据库连接“转换”为 UTF8。
这应该可以解决您所有的字符显示问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)