问问题
5126 次
2 回答
3
您已经拥有的数据可能需要通过utf8_decode()
(不是utf8_encode()
)。
为了确保将来顺利航行,您应该确保您的整个管道是 UTF-8。可悲的是,这并非微不足道。在我的脑海中,需要检查的地方:
- HTTP 守护进程的默认编码
- 对于 Apache,添加到 .htaccess 或 httpd.conf:
AddDefaultCharset UTF-8
- 对于 Apache,添加到 .htaccess 或 httpd.conf:
- PHP 的 default_encoding
- 添加 .htaccess 或服务器配置:
php_value default_charset "UTF-8"
- 添加 .htaccess 或服务器配置:
- HTTP 的标头内容类型字符集
header('Content-Type: text/html; charset=UTF-8');
- HTML 的元内容类型字符集
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
- PHP 的 MySQL 连接字符集
mysql_set_charset('utf8');
- MySQL 的数据库默认字符集和排序规则
- 使用字符集
utf8
和排序规则utf8_general_ci
- 使用字符集
- MySQL 的表和列字符集
- 使用字符集
utf8
和排序规则utf8_general_ci
- 使用字符集
如果您需要输出可能包含不需要的 HTML 或 XML 的值,请使用htmlentities($var, ENT_COMPAT, 'UTF-8');
而不是简单地使用htmlentities($var);
此外,mb_*
尽可能使用函数,例如mb_strlen()
和mb_substr()
。
于 2013-01-25T19:58:03.000 回答
-1
将您的表格排序规则更改为latin1_swedish_ci
使用特殊字符,您还可以执行以下操作
用于显示来自 mysql 的数据
$str=html_entity_decode(stripslashes($rows[4]));
用于将具有特殊字符的数据插入 mysql
$var_name=htmlentities(mysql_real_escape_string($detail));
于 2013-01-23T06:05:02.953 回答