数据库备份怎样避免乱码,Discuz技术小析

    今天看了下DiscuzX3.2的备份功能。

    进入后台,进行了备份测试,选择了 16进制方式。

备份后,进入/data/back_xxxx/ 查看刚刚备份的数据文件。

发现所有 char或text 数据类型的都是以16进制的方式存储的, 用16进制,可以把中文字符很好的转换成[0-9a-f]这16个数字加英文字符,这样就能很好的解决了因中文字符带来的乱码问题了。

admincp_db.php

里通过判断 usehex 来判断是否用16进制,

在遍历数据表是,通过判断字段的类型是否是 char  或 text 来实施16进制转换


当然,要完全避免乱码,还得数据库编码,数据表编码,脚本编码要,以及导入的sql数据载体编码和设置的编码要一致


函数 bin2hex   把字符串转成16进制字符串;hex2bin 则把16进制还原成字符串。

strexists() 函数判断字符串是否存在


From sogaoyou.com 搜高邮

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值