thinkphp连接mysql数据库 读取中文都变成问号了.......

数据库已调成utf-8了 文件类型也调成utf-8了.......无奈中..............

第1个回答  2013-04-06
PHP 没玩过, 给你一个 C# 里面的 处理的 步骤。

你对照着看看, 会不会是 thinkphp 连接 Mysql 的时候, 少传了参数。

-- 创建数据库的时候, 指定字符集.
CREATE DATABASE test_utf8
DEFAULT CHARACTER SET utf8
COLLATE utf8_general_ci;

mysql> use test_utf8
Database changed
mysql> show variables like 'character%';
+--------------------------+----------------------------------------------------
-----+
| Variable_name | Value
|
+--------------------------+----------------------------------------------------
-----+
| character_set_client | latin1
|
| character_set_connection | latin1
|
| character_set_database | utf8
|
| character_set_filesystem | binary
|
| character_set_results | latin1
|
| character_set_server | latin1
|
| character_set_system | utf8
|
| character_sets_dir | C:\Program Files\MySQL\MySQL Server 5.0\share\chars
ets\ |
+--------------------------+----------------------------------------------------
-----+
8 rows in set (0.00 sec)

-- 创建表的时候, 指定字符集.
CREATE TABLE test_tab (
id INT AUTO_INCREMENT,
value1 varchar(20),
value2 nvarchar(20),
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

处理 UTF8 的时候, C# 的连接字符串中,要加上 charset=utf8
例如:
Server=192.168.56.101;Database=test_utf8;Uid=test_user;Pwd=testpassword; charset=utf8

注:
dos下不支持UTF8的显示.
第2个回答  2013-04-07
数据库、文件类型、浏览器显示方式都是utf-8的话,没有理由仍然是问号的追问

还是问号

第3个回答  2013-04-08
数据库是utf8 ,不是utf-8本回答被提问者采纳
相似回答