我开始对utf8进行编码。但是浏览器告诉我“?”。我的设置在下面。
MySQL“显示像‘c%’这样的变量”
character_set_client | utf8
character_set_connection | utf8
character_set_database | utf8
.... (all utf8)MySQL my.cnf
[client]
default-character-set = utf8
[mysqld]
init_connect="SET collation_connection = utf8_general_ci"
init_connect="SET names utf8"
character-set-server = utf8
collation-server = utf8_general_ci
[mysql]
default-character-set = utf8在我的所有PHP文件中包括:
<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />Apache2 httpd.conf
AddDefaultCharset Off (if utf-8, show me '???' ,too)在MySQL控制台中,(数据库被转储)
SELECT name from campagin LIMIT 1
=> print in working order, not '????' 我不知道是什么问题。
作为参考,我测试这个案子..。在test.php中
<?php
mysql_connect('localhost','root',ROOT_PW);
mysql_select_db(TEST_DB_NAME);
mysql_query("INSERT INTO a SET msg='안녕하세요'"); // char is KOREAN, meaning 'Hi'
$res = mysql_query("SELECT msg FROM a LIMIT 1");
$row = mysql_fetch_assoc($res);
echo $row['msg'];
?>
=> this print '안녕하세요' in working order not '????'但是在MySQL控制台
"SELECT msg FROM a LIMIT 1"
=> print not '안녕하세요' but abnormally '안녕하세요'添加:在mysql控制台中
"SHOW CREATE TABLE a"
=> Table | Create Table
a | CREATE TABLE `a` ( 'msg' varchar(255) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 发布于 2013-12-06 23:28:15
使用基本的mysql_连接器,您需要声明
mysql_query( "SET NAMES utf8" );
mysql_query( "SET CHARACTER SET utf8" );这些信息告诉MySQL,您与它的通信将通过UTF8进行,否则可能无法工作。
此外,您需要确定您的表及其列定义为UTF-8,MySQL在列级别处理编码。如果是SHOW CREATE TABLE campagin,那么在表和列上编码会得到什么呢?如果一列不显示编码,它将默认为表级编码。
https://stackoverflow.com/questions/20434264
复制相似问题