为什么当我从数据库中读取西里尔文字时没问题,但是当我将此文本放在选择选项菜单中时,我得到奇怪的符号
http://prikachi.com/images/813/6589813g.jpg http://prikachi.com/images/811/6589811I.jpg
我认为我到处都是 utf-8 但我不知道......
在我的 html 中,我使用:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
为什么当我从数据库中读取西里尔文字时没问题,但是当我将此文本放在选择选项菜单中时,我得到奇怪的符号
http://prikachi.com/images/813/6589813g.jpg http://prikachi.com/images/811/6589811I.jpg
我认为我到处都是 utf-8 但我不知道......
在我的 html 中,我使用:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
很可能您没有在任何地方使用相同的字符集(utf-8),因此您的数据在某些时候会变得混乱。根据您的具体操作,您必须更改/添加以下一项或多项(可能是您忘记的SET CHARSET/ ):mysql_set_charset
告诉 MySQL 使用 utf-8。为此,请将其添加到您的 my.cnf:
collation_server = utf8_unicode_ci character_set_server = utf8
在与 mysql 交互之前,发送这两个查询:
SET NAMES 'utf8'; CHARSET 'utf8';
或者,或者,让 php 在打开连接后执行此操作:
mysql_set_charset('utf8', $conn); // when using the mysql_-functions mysqli::set_charset('utf8') // when using mysqli
将 UTF-8 设置为数据库的默认字符集
CREATE DATABASE `my_db` DEFAULT CHARACTER SET 'utf8';
对表格执行相同的操作:
CREATE TABLE `my_table` ( -- ... ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
假设客户端是浏览器,将您的内容作为 utf-8 和正确的标头提供:
header('Content-type: text/html; charset=utf-8');
为了确保浏览器能够理解,添加一个元标记:
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
最后但同样重要的是,告诉浏览器使用 utf-8 提交表单
<form accept-charset="utf-8" ...>