Re: [请益] phpmyadmin 中文显示乱码

楼主: weiclin (CC)   2016-04-16 01:10:44
※ 引述《latria (silly)》之铭言:
: 各位好,
: 我知道乱码问题已有许多讨论串,
: 我也爬过文了
: 可是问题还是不知道出在哪里><
: 如果有漏爬还请多多见谅
: 问题:
: 于"网页"输入中文至"phpmyadmin",于"phpmyadmin"检视,中文呈现为"乱码"
: 于 "网页" 检视,中文呈现为"正常"
: 于"phpmyadmin"输入中文至"网页",于 "网页" 检视,中文呈现为"问号"
: 于"phpmyadmin"检视,中文呈现为"正常"
: 截图:
: 网页 http://imgur.com/Y8HUZfw
: phpmyadmin http://imgur.com/Wrupaky
: 开发环境是Cloud9,用 MySQL 连结 phpmyadmin
: 已确认过
: 1.html是否加上
: <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
: 2.form表单是否加上
: header("Content-Type:text/html; charset=utf-8");
: 3.phpmyadmin数据库,资料表,字段编码皆已设为utf8_general_ci
: 4.连结数据库的档案也有加上mysql_query("SET NAMES 'UTF8'");
: 5.也有将php.ini的档案做修改
: http://imgur.com/zoPeaYs
: 以下是程式码截图
: http://imgur.com/a/oFT10
: 先谢谢大家
因为没玩过 cloud9, 刚刚去弄了帐号顺便测试你的问题
结果我也遇到了 xD 这边列一下我怎样设定让它正常运作的
这两个是基本要的:
1. 建资料表时使用 utf8mb4_general_ci
2. html header里加上 <meta charset="UTF-8">
这边的方法择一即可
1. 修改 /etc/mysql/my.cnf
a) 在 [client] 底下加一行 default-character-set=utf8
b) 在 [mysqld] 底下加一行 character-set-server=utf8
2. 使用 PDO:
new PDO("mysql:host=localhost;dbname=c9;charset=utf8", "xxxxx", "xxxxx");
3. 使用 mysqli:
$mysqli = new mysqli("localhost", "xxxxx", "xxxxx", "c9");
$mysqli->set_charset("utf8");
或是非物件的方式:
$mysqli = mysqli_connect("localhost", "xxxxx", "xxxxx", "c9");
mysqli_set_charset($mysqli, "utf8");
根据 php 官方的文件 http://php.net/manual/en/mysqli.set-charset.php
不建议使用 "SET NAMES UTF8", 而是使用 set_charset 就够了
这样我在 phpmyadmin 里面输入的中文, 就可以正常显示了
我没有另外测试使用 php 写入数据库, 但应该也会正常了
作者: latria (silly)   2016-04-17 15:31:00
谢谢w大,已站内问题解决了,真的万分感谢!!!
作者: IhaveASecret (人都有秘密)   2016-04-19 21:02:00
我都是用 1 的方式

Links booklink

Contact Us: admin [ a t ] ucptt.com