使用UTF8configuration服务器时遇到问题。 那么,我没有完全configuration它。 我从客户那里工作,我认为他不是configurationWeb服务器的专家。
我的PHP + MySQL应用程序需要使用UTF8中的Apache和MySQL。 在各种电子邮件之后,这个人configuration了支持utf8的apache,但是现在是时候到MySQL了,我们没办法configuration它。 我不知道该怎么做,因为我不是系统pipe理员,但是我在ubuntu上configuration了apache / mysql,并且支持utf8查看Google。
我对他说的是,请使用my.cnf上的下一个configuration:
[mysqld] character-set-filesystem=UTF8 character-set-server=UTF8 default-collation=UTF8_general_ci default-character-set=UTF8 [client] default-character-set=UTF8 [mysqldump] default-character-set=UTF8
但没有任何改变。 他通过了我正在运行的my.cnf,你可以在这里看到它: http : //pastebin.com/NfcgKKiM …并不适用于MySQL的UTF8编码。
我在PHP中做的是每次使用SET NAMES utf8`启动一个MySQL查询,它的工作原理是UTF8,但我不认为这是最好的select,但是certificate某些configuration是错误的。 没有?
我可以做什么? 我可以对服务器pipe理员说什么?
谢谢你,对不起我英文不好!
DB(show create database DB_NAME)中的“CHARACTER SET”和“COLLATE”是什么?
尝试:
[mysqld] init-connect='SET NAMES utf8'
你在my.cnf缺less了更多的参数,下面是我的样子
[client] default-character-set=utf8 [mysql] default-character-set=utf8 [mysqld] init_connect='SET collation_connection = utf8_general_ci' init_connect='SET NAMES utf8' default_character_set=utf8 character_set_server = utf8 collation_server = utf8_general_ci
这应该会给你MySQL后端提供完整的UTF8支持
我的所有网页都是这样开始的:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd"> <html><head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
我的MySQL连接如下所示:(注意PDO::exec()调用)
try { $dbh = new PDO(('mysql:host=' . $mbdbhost . ';dbname=' . $mbdbname), $mbdbuser, $mbdbpass, array(PDO::ATTR_PERSISTENT => true)); $dbh->exec('SET CHARACTER SET utf8'); } catch (PDOException $e) { header("Location: error.php"); }
我的表看起来有点像这样:
CREATE TABLE IF NOT EXISTS fotouser ( idfotouser INT NOT NULL AUTO_INCREMENT , person INT NOT NULL , PRIMARY KEY (idfotouser) , INDEX person (person ASC) , CONSTRAINT person FOREIGN KEY (person) REFERENCES mb_person (idmb_person) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8 COLLATE = utf8_swedish_ci ;