吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1663|回复: 5
收起左侧

[已解决] (php)thinkphp5.0关于数据库latin1编码,HTML中文乱码(GBK编码)解决

[复制链接]
825578598 发表于 2019-12-19 11:43
最近自己在搞php的TP5框架,由于数据库是latin1编码的,而TP5的HTML默认是UTF-8,一开始以为是数据库编码的问题造成了HTML中文乱码,然后在PHP和HTML设置了编码都不管用,最后发现TP5这个框架会在Response.php这个控制器里面封装了Response类,做了初始化才解决这个问题,下面上图
首先我们如果确定数据库是latin1编码的
需要在

数据库编码设置

数据库编码设置
这个文件设置数据库编码
image.png

但是由于TP5的是默认UTF-8的,所以如果这里设置了Latin1编码,HTML输出的时候中午就回乱码

image.png
即使你在HTML文件里面设置了编码格式也不管用,因为下图底层的类里面做了初始化,默认是UTF-8
Response类.png 在这个文件里面封装了模版引擎加载渲染的各种设置

image.png 在这里改了设置,才把问题解决,有点坑,特别是HTML是GBK编码的,必须在这里设置了才会生效,否者中文就会乱码,分享一下心得吧

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

jwj 发表于 2019-12-19 11:58
所以数据库为什么要用latin1编码呢?这样根本不能解决问题,TP内置的一些错误信息都是UTF-8编码,你还得把这些都转换编码。建议还是把数据库编码转换为UTF8吧。
Richex 发表于 2019-12-19 12:08
统一只用UTF8,看到要设置编码的地方 UTF8,如果不是UTF8开工前先统一成UTF8再做,就没那么多事了
 楼主| 825578598 发表于 2019-12-19 12:40
jwj 发表于 2019-12-19 11:58
所以数据库为什么要用latin1编码呢?这样根本不能解决问题,TP内置的一些错误信息都是UTF-8编码,你还得把 ...

这里应该只是加载模版渲染会经过的地方,其他你说的那些问题我还没发现
 楼主| 825578598 发表于 2019-12-19 12:42
Richex 发表于 2019-12-19 12:08
统一只用UTF8,看到要设置编码的地方 UTF8,如果不是UTF8开工前先统一成UTF8再做,就没那么多事了

有时候,并不是所有的东西都是按着自己理想来的,这数据库几百张表,数十万数据,而且还有C语言,.net要调用这个数据库,我如果统一转码了,我怕那些语言会出现一些问题,不然当初开发者没必要弄这些编码。
Richex 发表于 2020-1-20 20:25
825578598 发表于 2019-12-19 12:42
有时候,并不是所有的东西都是按着自己理想来的,这数据库几百张表,数十万数据,而且还有C语言,.net要 ...

确实不可能完全按照理想的来,不过这也跟做项目参与的人有关系了,虽然我不熟悉其他语言,但是如果用其他语言开发之前统一编码也可以提前预防避免的。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止回复与主题无关非技术内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-3-29 21:48

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表