为了让网站接受用户提交的可能不是英文(如日文)的内容,并将其保存到数据库中,utf8_encode所有新内容和用户utf8_decode以后检索这些内容是否最符合我的利益?
进一步的信息:我使用的是理论,当我试图将Unicode字符保存或选择到MySQL数据库时会出错:
SQLSTATEHY000:一般错误: 1267用于操作'='
的排序规则(latin1_swedish_ci,隐式)和(utf8_general_ci,强制)的非法混合
发布于 2011-09-10 19:59:21
布伦特是对的。必须是端到端的。这是我的单子:
Apache config:
AddDefaultCharset UTF-8
AddCharset UTF-8 .utf8
php.ini:
default_charset = "utf-8"
MySQL:
ALTER DATABASE DEFAULT CHARACTER SET utf8;
ALTER TABLE SomeTableName DEFAULT CHARACTER SET utf8;
PHP/HTML:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
…
<form … <input type="text" name="some_field" value="<?php echo htmlspecialchars($row['some_field'], ENT_COMPAT, 'UTF-8'); ?>"…
This last one seems the most important. Call this function immediately after the mysql_connect() call:
mysql_query("SET NAMES 'utf8'");https://stackoverflow.com/questions/7371146
复制相似问题