2017-01-09 14:48:56 2960次浏览 1条回答 0 悬赏 10 金钱

连接oracle数据库(数据库使用GBK,网页使用utf8),修改了配置文件app/config/db.php
'dsn' => 'oci:dbname=11.222.128.111/hwwg;charset=ZHS16GBK',
连接成功。
但是使用gii的model时异常
http://127.0.0.1/mc/web/index.php?r=gii/default/view&id=model
错误如下:,请问怎么处理?

Exception
Invalid Parameter – yii\base\InvalidParamException
Malformed UTF-8 characters, possibly incorrectly encoded.
补充于 2017-01-10 09:37

中文出来了 原来odp连接里的字符集不是要写数据库,而是要写网页的
我的数据库的字符集是GBK但是我改成这样:
'dsn' => 'oci:dbname=10.224.128.106/hwwg;charset=utf8',
中文可以出来,但是执行ggi时还是有问题,原因是我的表名有中文的,报错如下:有没有解决方法。

Database Exception – yii\db\Exception
PDOStatement::fetchAll(): column 0 data was too large for buffer and was truncated to fit it
The SQL being executed was: SELECT table_name FROM user_tables where table_name like 'ZL_MC%'
UNION ALL
SELECT view_name AS table_name FROM user_views where view_name like 'CL_3338_%'
UNION ALL
SELECT mview_name AS table_name FROM user_mviews where mview_name like 'ZL_MC%'
ORDER BY table_name↵
Caused by: yii\base\ErrorException
PDOStatement::fetchAll(): column 0 data was too large for buffer and was truncated to fit it
in E:\www\mc\vendor\yiisoft\yii2\db\Command.php at line 908

  • 回答于 2017-01-09 15:46 举报

    最基本的要三码合一呢

    2 条回复
    回复于 2017-01-10 09:32 回复

    生产环境比较复杂,系统要连接很多其他数据库。所以数据库的编码不能一致。我之前没有用框架,写道逻辑太复杂,所以比不得也来学个框架稿一搞,看看能得能把我的程序走的更远。

    回复于 2017-01-10 10:05 回复

    你这个数据库是gbk,表也有中文,这是历史遗留问题, 以前的网页好像都是用gbk格式的,现在是utf-8,给你个方法: 自己写一个工具,把项目下所有编码格式转成utf-8,另外再写一个工具,把数据库下的格式转成utf8,数据库,数据表,字段全部用英文替换,一次性解决问题,不会反弹

您需要登录后才可以回答。登录 | 立即注册
zealveryme
实习生

zealveryme

注册时间:2017-01-09
最后登录:2017-01-10
在线时长:0小时28分
  • 粉丝0
  • 金钱10
  • 威望0
  • 积分10

热门问题