匿名用户
1级
2018-12-26 回答
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的显示.