thinkphp连接mysql数据库 读取中文都变成问号了.......
答案:3 悬赏:10 手机版
解决时间 2021-03-08 18:23
- 提问者网友:書生途
- 2021-03-08 13:44
数据库已调成utf-8了 文件类型也调成utf-8了.......无奈中..............
最佳答案
- 五星知识达人网友:西风乍起
- 2021-03-08 15:24
数据库是utf8 ,不是utf-8
全部回答
- 1楼网友:行路难
- 2021-03-08 16:45
如果你的编码 是utf8 用 mysql_query('set names utf-8');
如果你的编码 是gbk 用 mysql_query('set names gbk');
这两个代码 肯定有一个能让你满意
- 2楼网友:孤独入客枕
- 2021-03-08 16:05
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的显示.
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯